Yohan Wal
9d172f1cae
feat: init PgElection with candidate registration ( #5209 )
...
* feat: init PgElection
fix: release advisory lock
fix: handle duplicate keys
chore: update comments
fix: unlock if acquired the lock
chore: add TODO and avoid unwrap
refactor: check both lock and expire time, add more comments
chore: fmt
fix: deal with multiple edge cases
feat: init PgElection with candidate registration
chore: fmt
chore: remove
* test: add unit test for pg candidate registration
* test: add unit test for pg candidate registration
* chore: update pg env
* chore: make ci happy
* fix: spawn a background connection thread
* chore: typo
* fix: shadow the election client for now
* fix: fix ci
* chore: readability
* chore: follow review comments
* refactor: use kvbackend for pg election
* chore: rename
* chore: make clippy happy
* refactor: use pg server time instead of local ones
* chore: typo
* chore: rename infancy to leader_infancy for clarification
* chore: clean up
* chore: follow review comments
* chore: follow review comments
* ci: unit test should test all features
* ci: fix
* ci: just test pg
2025-01-04 02:12:27 +08:00
Weny Xu
d4cae6af1e
refactor: remove unnecessary wrap ( #5221 )
...
* chore: remove unnecessary arc
* chore: remove unnecessary box
2025-01-04 02:12:27 +08:00
discord9
f5e743379f
feat: show flow's mem usage in INFORMATION_SCHEMA.FLOWS ( #4890 )
...
* feat: add flow mem size to sys table
* chore: rm dup def
* chore: remove unused variant
* chore: minor refactor
* refactor: per review
2024-12-20 14:12:19 +08:00
Weny Xu
925525726b
fix: ensure table route metadata is eventually rolled back on failure ( #5174 )
...
* fix: ensure table route metadata is eventually rolled back on procedure failure
* fix(fuzz): enhance procedure condition checking
* chore: add logs
* feat: close downgraded leader region actively
* chore: apply suggestions from CR
2024-12-20 14:12:19 +08:00
Ruihang Xia
2d84cc8d87
refactor: remove unused symbols ( #5193 )
...
chore: remove unused symbols
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2024-12-20 14:12:19 +08:00
jeremyhi
85d72a3cd0
chore: set store_key_prefix for all kvbackend ( #5132 )
2024-12-20 14:12:19 +08:00
Weny Xu
2b699e735c
chore: correct example config file ( #5105 )
...
* chore: correct example config file
* fix: fix unit test
2024-12-06 03:14:08 +00:00
Weny Xu
5bdea1a755
fix: correct is_exceeded_size_limit behavior for in-memory store ( #5082 )
...
* fix: correct `is_exceeded_size_limit` behavior for in-memory store
* chore: rename `MetaClientExceededSizeLimit` to `ResponseExceededSizeLimit`
2024-12-02 12:26:02 +00:00
Weny Xu
0f116c8501
feat: enable compression for metasrv client ( #5078 )
...
* feat: enable compression for metasrv client
* refactor: simplify gRPC service router registration
* chore: fix unit tests
2024-12-02 05:18:25 +00:00
Lei, HUANG
a617e0dbef
feat: use cache kv manager for SchemaMetadataManager ( #5053 )
...
* feat: add cache for schema options
* fix/use-cache-kv-manager: Add cache invalidation handling to Datanode's heartbeat task
• Implement InvalidateSchemaCacheHandler in heartbeat.rs to handle cache invalidation instructions.
• Update HeartbeatTask constructor to accept cached_kv_backend and pass it to InvalidateSchemaCacheHandler.
• Modify DatanodeBuilder to clone cached_kv_backend when creating schema_metadata_manager.
• Refactor MetasrvCacheInvalidator in cache_invalidator.rs to reuse MailboxMessage for broadcasting to different channels.
* fix: only remove schema related cache entries
* chore: add more tests
* fix/use-cache-kv-manager: Moved InvalidateSchemaCacheHandler to a separate module
• Extracted InvalidateSchemaCacheHandler and associated tests into a new file cache_invalidator.rs
• Removed async_trait and CacheInvalidator related code from heartbeat.rs
• Added cache_invalidator module declaration in handler.rs
* fix: unit tests
* fix/use-cache-kv-manager:
Standardize TODO comment format in CachedKvBackend txn method
* Update src/datanode/src/heartbeat/handler/cache_invalidator.rs
* Update src/datanode/src/heartbeat/handler/cache_invalidator.rs
* Update src/datanode/src/heartbeat/handler/cache_invalidator.rs
---------
Co-authored-by: jeremyhi <jiachun_feng@proton.me >
2024-11-26 12:24:47 +00:00
Weny Xu
4b263ef1cc
fix: obsolete wal entires while opening a migrated region ( #4993 )
...
* fix: delete obsolete wal entrie while opening a migrated region
* chore: add logs
* chore: rust fmt
* fix: fix fuzz test
2024-11-15 10:55:22 +00:00
Weny Xu
08f59008cc
refactor: introduce MaintenanceModeManager ( #4994 )
...
* refactor: introduce MaintenanceModeManager
* chore: apply suggestions from CR
* chore: apply suggestions from CR
* chore: apply suggestions from CR
2024-11-15 07:15:22 +00:00
Lin Yihai
0b6d78a527
refactor: consolidate DatanodeClientOptions ( #4966 )
...
refactor!: consolidate `DatanodeClientOptions`
2024-11-12 09:57:41 +00:00
jeremyhi
f3509fa312
chore: minor refactor for weighted choose ( #4917 )
...
* chore: minor refactor for weighted choose
* chore: by comment, remove the fast path of choose_multiple
2024-11-05 02:55:11 +00:00
jeremyhi
9405d1c578
feat: heartbeat_flush_threshold option ( #4924 )
...
* feat: heartbeat_flush_threshold
* chore: rename to flush_stats_factor
* Update src/meta-srv/src/handler/collect_stats_handler.rs
2024-11-04 03:34:50 +00:00
Weny Xu
758ad0a8c5
refactor: simplify WeightedChoose ( #4916 )
...
* refactor: simplify WeightedChoose
* chore: remove unused errors
2024-10-31 06:22:30 +00:00
dennis zhuang
dcc08f6b3e
feat: adds the number of rows and index files size to region_statistics table ( #4909 )
...
* feat: adds index size to region statistics
* feat: adds the number of rows for region statistics
* test: adds sqlness test for region_statistics
* fix: test
2024-10-30 11:12:58 +00:00
LFC
fd8eba36a8
refactor: make use of the "pre_execute" in sql execution interceptor ( #4875 )
...
* feat: dynamic definition of plugin options
* rebase
* revert
* fix ci
2024-10-30 09:16:46 +00:00
Lei, HUANG
e328c7067c
chore: udapte Rust toolchain to 2024-10-19 ( #4857 )
...
* update rust toolchain
* change toolchain to 2024-10-17
* fix: clippy
* fix: ut
* bump shadow-rs
* fix: use nightly-2024-10-19
* fix: clippy
* chore/udapte-toolchain-2024-10-17: Update DEV_BUILDER_IMAGE_TAG to 2024-10-19-a5c00e85-20241024184445 in Makefile
2024-10-25 00:23:32 +00:00
jeremyhi
aa9a265984
chore: make pusher log easy to understand ( #4841 )
...
* chore: make pusher log easy to understand
* Update src/meta-srv/src/service/heartbeat.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* Update src/meta-srv/src/service/heartbeat.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* chore: by comment
---------
Co-authored-by: Yingwen <realevenyag@gmail.com >
2024-10-24 07:44:16 +00:00
pa
9d3ee6384a
feat: Limit CPU in runtime ( #3685 ) ( #4782 )
...
feat: add throttle runtime (#3685 )
2024-10-24 07:30:24 +00:00
Weny Xu
5d42e63ab0
fix!: replace timeout_millis and connect_timeout_millis with Duration in DatanodeClientOptions ( #4867 )
...
* fix: correct options struct
* fix: fix unit test
2024-10-23 08:20:34 +00:00
Weny Xu
0ce93f0b88
chore: add more metrics for region migration ( #4838 )
2024-10-16 09:36:57 +00:00
jeremyhi
59ec90299b
refactor: metasrv cannot be cloned ( #4834 )
...
* refactor: metasrv cannot be cloned
* chore: remove MetasrvInstance's clone
2024-10-15 11:36:48 +00:00
Weny Xu
3197b8b535
feat: introduce default customizers ( #4831 )
...
* feat: introduce `DefaultHeartbeatHandlerGroupBuilderCustomizer` and `DefaultLeadershipChangeNotifierCustomizer`
* chore: code styling
2024-10-15 09:48:13 +00:00
Weny Xu
b5233e500b
feat: defer HeartbeatHandlerGroup construction and enhance LeadershipChangeNotifier ( #4826 )
...
* feat: enhance `HeartbeatHandlerGroup`
* chore: apply suggestions from CR
* chore: minor refactoring
* chore: code styling
* chore: apply suggestions from CR
2024-10-15 03:35:31 +00:00
jeremyhi
856c0280f5
feat: remove the distributed lock ( #4825 )
...
* feat: remove the distributed lock as we do not need it any more
* chore: delete todo comment
* chore: remove unused error
2024-10-12 09:04:22 +00:00
Weny Xu
4bb1f4f184
feat: introduce LeadershipChangeNotifier and LeadershipChangeListener ( #4817 )
...
* feat: introduce `LeadershipChangeNotifier`
* refactor: use `LeadershipChangeNotifier`
* chore: apply suggestions from CR
* chore: apply suggestions from CR
* chore: adjust log styling
2024-10-11 12:48:53 +00:00
Weny Xu
695ff1e037
feat: expose RegionMigrationManagerRef ( #4812 )
...
* chore: expose `RegionMigrationProcedureTask`
* fix: fix typos
* chore: expose `tracker`
2024-10-11 02:40:51 +00:00
Weny Xu
2cdd103874
feat: introduce HeartbeatHandlerGroupBuilderCustomizer ( #4803 )
...
* feat: introduce `HeartbeatHandlerGroupBuilderFinalizer`
* chore: rename to `HeartbeatHandlerGroupBuilderCustomizer`
2024-10-08 09:02:06 +00:00
Weny Xu
c1e8084af6
feat: add add_handler_after, add_handler_before, replace_handler ( #4788 )
...
* feat: add `add_handler_after`, `add_handler_before`, `replace_handler`
* chore: apply suggestions from CR
* test: add more tests
* feat: use `Vec` instead of `LinkedList`
* Update src/meta-srv/src/lib.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
---------
Co-authored-by: Yingwen <realevenyag@gmail.com >
2024-09-30 08:53:59 +00:00
Weny Xu
6e776d5f98
feat: support to reject write after flushing ( #4759 )
...
* refactor: use `RegionRoleState` instead of `RegionState`
* feat: introducing `RegionLeaderState::Downgrading`
* refactor: introduce `set_region_role_state_gracefully`
* refactor: use `set_region_role` instead of `set_writable`
* feat: support to reject write after flushing
* fix: fix unit tests
* test: add unit test for `should_reject_write`
* chore: add comments
* chore: refine comments
* fix: fix unit test
* test: enable fuzz tests for Local WAL
* chore: add logs
* chore: rename `RegionStatus` to `RegionState`
* feat: introduce `DowngradingLeader`
* chore: rename
* refactor: refactor `set_role_state` tests
* test: ensure downgrading region will reject write
* chore: enhance logs
* chore: refine name
* chore: refine comment
* test: add tests for `set_role_role_state`
* fix: fix unit tests
* chore: apply suggestions from CR
* chore: apply suggestions from CR
2024-09-30 08:28:51 +00:00
Weny Xu
77af4fd981
refactor: introduce HeartbeatHandlerGroupBuilder ( #4785 )
2024-09-30 02:56:53 +00:00
Weny Xu
4045298cb2
feat: add region_statistics table ( #4771 )
...
* refactor: introduce `region_statistic`
* refactor: move DatanodeStat related structs to common_meta
* chore: add comments
* feat: implement `list_region_stats` for `ClusterInfo` trait
* feat: add `region_statistics` table
* feat: add table_id and region_number fields
* chore: rename unused snafu
* chore: udpate sqlness results
* chore: avoid to print source in error msg
* chore: move `procedure_info` under `greptime` catalog
* chore: apply suggestions from CR
* Update src/common/meta/src/datanode.rs
Co-authored-by: jeremyhi <jiachun_feng@proton.me >
---------
Co-authored-by: jeremyhi <jiachun_feng@proton.me >
2024-09-27 09:54:52 +00:00
Weny Xu
163cea81c2
feat: migrate local WAL regions ( #4715 )
...
* feat: allow to flush region before migrating
* fix: fix unit tests
* feat: allow to set `flush_timeout`
* feat: skip to replay memtable
* fix: fix unit tests
* test: add more tests
* refactor: simplify timeout logical
* test: add unit tests
* test: add unit tests
* chore: update comments
* fix: fix unit tests
* fix: fmt and clippy
* feat: change default timeout to 30s
* fix: throw `ExceededDeadline` error
* test: add tests for `downgrade_region_with_retry`
* chore: apply suggestions from CR
* chore: apply suggestions from CR
* chore: apply suggestions from CR
* chore: update proto to `3633474`
* refactor: refactor `upgrade_region_with_retry`
* chore: apply suggestions from CR
2024-09-20 08:27:20 +00:00
taobo
0c9b8eb0d2
feat: improve observability for procedure ( #4675 )
...
* feat: improve observability for procedure
* fix: test error
* test: add sqlness test for information_schema.procedure_info
* fix: sqlness test error
* fix: cr comment
* chore: update proto version
* fix: apply cr comment
* update version
* fix: cr comment
* optimize procedure type output format
* upgrade dep version
* fix: clippy error
* fix: `procedure` borrowed error
* fix: optimize code
2024-09-20 06:07:53 +00:00
Lei, HUANG
b5f7138d33
refactor(tables): improve tables performance ( #4737 )
...
* chore: cherrypick 52e8eebb2dbbbe81179583c05094004a5eedd7fd
* refactor/tables: Change variable from immutable to mutable in KvBackendCatalogManager's method
* refactor/tables: Replace unbounded channel with bounded and use semaphore for concurrency control in KvBackendCatalogManager
* refactor/tables: Add common-runtime dependency and update KvBackendCatalogManager to use common_runtime::spawn_global
* refactor/tables: Await on sending error through channel in KvBackendCatalogManager
2024-09-19 04:44:02 +00:00
jeremyhi
dcae21208b
chore: refresh route table ( #4673 )
...
* chore: remove error::
* chore: avoid to use get_raw if unnecessary
* chore: clearer method name
* feat: remap node addresses in table route
* chore: add unit test for remap address
* feat: refresh node address mapping via heartbeat
* feat: broadcast table cache invalidate on new epoch
* chore: clarify heartbeat log
* chore: remove InvalidHeartbeatRequest
* chore: add log
* feat: add role into NodeAddressKey
* chore: fix test
* Update src/common/meta/src/key/table_route.rs
Co-authored-by: LFC <990479+MichaelScofield@users.noreply.github.com >
* chore: simplify code
---------
Co-authored-by: LFC <990479+MichaelScofield@users.noreply.github.com >
2024-09-10 12:08:59 +00:00
Weny Xu
8bf549c2fa
chore: print downgraded region last_entry_id ( #4701 )
2024-09-09 08:14:55 +00:00
jeremyhi
e88465840d
feat: add extension field to HeartbeatRequest ( #4688 )
...
* feat: add extension field to HeartbeatRequest
* chore: extension to extensions
* chore: upgrade proto
2024-09-06 08:29:20 +00:00
jeremyhi
8814695b58
feat: invalidate cache via invalidator on region migration ( #4682 )
...
feat: invalidate table via invalidator on region migration
2024-09-05 06:15:38 +00:00
Ruihang Xia
93f202694c
refactor: remove unused error variants ( #4666 )
...
* add python script
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove unused errors
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix all negative cases
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* setup CI
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add license header
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2024-09-03 13:19:38 +00:00
Lanqing Yang
9286e963e7
chore: adding heartbeat sent/recv counts in greptimedb nodes ( #4624 )
...
obs: adding heartbeat sent/recv counts in greptimedb nodes
2024-08-30 03:57:16 +00:00
Weny Xu
47657ebbc8
feat: replay WAL entries respect index ( #4565 )
...
* feat(log_store): use new `Consumer`
* feat: add `from_peer_id`
* feat: read WAL entries respect index
* test: add test for `build_region_wal_index_iterator`
* fix: keep the handle
* fix: incorrect last index
* fix: replay last entry id may be greater than expected
* chore: remove unused code
* chore: apply suggestions from CR
* chore: rename `datanode_id` to `location_id`
* chore: rename `from_peer_id` to `location_id`
* chore: rename `from_peer_id` to `location_id`
* chore: apply suggestions from CR
2024-08-28 11:37:18 +00:00
Ruihang Xia
a3b8d2fe8f
chore: bump rust toolchain to 2024-08-21 ( #4606 )
...
* chore: bump rust toolchain to 2024-08-22
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update workflow
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* try 20240606
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2024-08-22 15:38:10 +00:00
Weny Xu
25cd61b310
chore: upgrade toolchain to nightly-2024-08-07 ( #4549 )
...
* chore: upgrade toolchain to `nightly-2024-08-07`
* chore(ci): upgrade toolchain
* fix: fix unit test
2024-08-22 11:02:18 +00:00
Lanqing Yang
93be81c041
feat: implement postgres kvbackend ( #4421 )
2024-08-14 22:49:32 +00:00
zyy17
63e1892dc1
refactor(plugin): add SetupPlugin and StartPlugin error ( #4554 )
2024-08-13 11:22:48 +00:00
Jeremyhi
0d70961448
feat: change the default selector to RoundRobin ( #4528 )
...
* feat: change the default selector to rr
* Update src/meta-srv/src/selector.rs
* fix: unit test
2024-08-08 04:58:20 +00:00
Ruihang Xia
7daf24c47f
feat: remove dedicated runtime for grpc, mysql and pg protocols ( #4436 )
...
* feat: remove dedicated runtime for grpc, mysql and pg protocols
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove other runtimes
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* spawn compact task into compact_runtime
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* refine naming
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* Update src/servers/tests/mysql/mysql_server_test.rs
Co-authored-by: Zhenchi <zhongzc_arch@outlook.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* turnoff fuzz test matrix fail fast option
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* chore: update rt config for ci tests
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Zhenchi <zhongzc_arch@outlook.com >
Co-authored-by: Weny Xu <wenymedia@gmail.com >
2024-07-30 06:17:58 +00:00