Weny Xu
fbdc35a109
ci: add remote WAL logical pruning fuzz ( #8307 )
...
* feat: configure remote wal checkpoint intervals
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: add logical pruning fuzz target
Signed-off-by: WenyXu <wenymedia@gmail.com >
* ci: add remote WAL logical pruning fuzz
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2026-06-18 08:24:47 +00:00
Weny Xu
e520ff8300
feat: decouple error retryability from status codes ( #8301 )
...
* feat: add retry hint to common error
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: propagate retry hints in core errors
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: propagate retry hint through RPC metadata
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: fallback retry hints to status codes
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: add explicit retry hints for retryable errors
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: remove status code retry fallback
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: classify io retry hints
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: preserve retry hints across error wrappers
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: minior
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: preserve datasource retry hints in query
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: preserve metric engine retry hints
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: preserve flow and frontend retry hints
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: share rskafka retry hint mapping
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2026-06-17 08:27:53 +00:00
Ning Sun
e14404c677
chore: update rust toolchain to 2026-03-21 ( #7849 )
...
* chore: update rust toolchain to 2026-03-21
* chore: new format
* fix: lint
* chore: resolve lint issues
* chore: remove as_millis_f64
* chore: deps up
2026-03-30 12:13:14 +00:00
Weny Xu
4d66bd96b8
feat: make distributed time constants and client timeouts configurable ( #7433 )
...
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-12-19 02:23:20 +00:00
Weny Xu
cb0f1afb01
fix: improve network failure detection ( #7382 )
...
* fix(meta): add default etcd client options with keep-alive settings (#7363 )
* fix: improve network failure detection (#7367 )
* Update src/meta-srv/src/handler.rs
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
---------
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2025-12-10 09:48:36 +00:00
Weny Xu
3119464ff9
feat: introduce the Noop WAL provider for datanode ( #7105 )
...
* feat: introduce noop log store
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: update config example
Signed-off-by: WenyXu <wenymedia@gmail.com >
* test: add noop wal tests
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-10-20 06:13:27 +00:00
LFC
8fe17d43d5
chore: update rust to nightly 2025-10-01 ( #7069 )
...
* chore: update rust to nightly 2025-10-01
Signed-off-by: luofucong <luofc@foxmail.com >
* chore: nix update
---------
Signed-off-by: luofucong <luofc@foxmail.com >
Co-authored-by: Ning Sun <sunning@greptime.com >
2025-10-11 07:30:52 +00:00
Ruihang Xia
c9377e7c5a
build: bump rust edition to 2024 ( #6920 )
...
* bump edition
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* format
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* gen keyword
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* lifetime and env var
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* one more gen fix
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* lifetime of temporaries in tail expressions
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* format again
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* clippy nested if
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* clippy let and return
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-09-08 02:37:18 +00:00
Weny Xu
7cf47ccf54
fix: initialize remote WAL regions with correct flushed entry IDs ( #6856 )
...
* fix: initialize remote WAL regions with correct flushed entry IDs
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: add logs
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: correct latest offset
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: update sqlness
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: add replay checkpoint to catchup request
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: logs
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-09-03 04:00:02 +00:00
LFC
d57c0db9e6
fix: no need to early lookup DNS for kafka broker ( #6845 )
...
Signed-off-by: luofucong <luofc@foxmail.com >
2025-09-01 03:03:33 +00:00
Weny Xu
566a647ec7
feat: add replay checkpoint to reduce overhead for remote WAL ( #6816 )
...
* feat: introduce `TopicRegionValue`
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: persist region replay checkpoint
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: introduce checkpoint
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: udpate config.md
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: minor refactor
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: send open region instructions with reply checkpoint
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: use usize
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: fix unit tests
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: fix unit tests
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: add topic name pattern
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: enable wal prune by default
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-08-27 07:24:33 +00:00
Arshdeep
8894cb5406
feat: resolve unused dependencies with cargo-udeps ( #6578 ) ( #6619 )
...
* feat:resolve unused dependencies with cargo-udeps (#6578 )
Signed-off-by: Arshdeep54 <balarsh535@gmail.com >
* Apply suggestion from @zyy17
Co-authored-by: zyy17 <zyylsxm@gmail.com >
* Apply suggestion from @zyy17
Co-authored-by: zyy17 <zyylsxm@gmail.com >
---------
Signed-off-by: Arshdeep54 <balarsh535@gmail.com >
Co-authored-by: Ning Sun <classicning@gmail.com >
Co-authored-by: zyy17 <zyylsxm@gmail.com >
2025-08-26 10:22:53 +00:00
Weny Xu
021ad09c21
refactor: simplify WAL pruning procedure and introduce region flush trigger ( #6741 )
...
* chore: add logs
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: update wal config for metasrv
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: introduce region flush trigger
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: debug assert
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: log level
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: simplify wal prune procedure
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: upgrade rskafka
Signed-off-by: WenyXu <wenymedia@gmail.com >
* feat: always flush inactive regions
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: refactor flush trigger
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: remove unused code
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: typo
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: update unit tests
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: add metrics
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: rename
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions from CR
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-08-14 14:15:30 +00:00
Weny Xu
8659412cac
feat: introduce PeriodicTopicStatsReporter ( #6730 )
...
* refactor: introduce `PeriodicTopicStatsReporter`
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions from CR
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: fix typo
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: remote wal tests styling
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: fix unit test
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: handling region wal options not found
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions from CR
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: minor
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: upgrade greptime-proto
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-08-13 11:46:50 +00:00
Weny Xu
10bf9b11f6
fix: handle corner case in catchup where compacted entry id exceeds region last entry id ( #6312 )
...
* fix(mito2): handle corner case in catchup where compacted entry id exceeds region last entry id
Signed-off-by: WenyXu <wenymedia@gmail.com >
* chore: apply suggestions from CR
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2025-06-16 06:36:31 +00:00
Weny Xu
80c5af0ecf
fix: ignore incomplete WAL entries during read ( #6251 )
...
* fix: ignore incomplete entry
* fix: fix unit tests
2025-06-04 11:16:42 +00:00
Lei, HUANG
4e615e8906
feat(wal): support bulk wal entries ( #6178 )
...
* feat/bulk-wal:
### Refactor: Simplify Data Handling in LogStore Implementations
- **`kafka/log_store.rs`, `raft_engine/log_store.rs`, `wal.rs`, `raw_entry_reader.rs`, `logstore.rs`:**
- Refactored `entry` and `build_entry` functions to accept `Vec<u8>` directly instead of `&mut Vec<u8>`.
- Removed usage of `std::mem::take` for data handling, simplifying the code and improving readability.
- Updated test cases to align with the new function signatures.
* feat/bulk-wal:
### Add Support for Bulk WAL Entries and Flight Data Encoding
- **Add `raw_data` field to `BulkPart` and related structs**: Updated `BulkPart` and related structures in `src/mito2/src/memtable/bulk/part.rs`, `src/mito2/src/memtable/simple_bulk_memtable.rs`, `src/mito2/src/memtable/time_partition.rs`, `src/mito2/src/region_write_ctx.rs`,
`src/mito2/src/worker/handle_bulk_insert.rs`, and `src/store-api/src/region_request.rs` to include a new `raw_data` field for handling Arrow IPC data.
- **Implement Flight Data Encoding**: Added a new module `flight` in `src/common/test-util/src/flight.rs` to encode record batches to Flight data format.
- **Update `greptime-proto` dependency**: Changed the revision of the `greptime-proto` dependency in `Cargo.lock` and `Cargo.toml`.
- **Enhance WAL Writer and Tests**: Modified `src/mito2/src/wal.rs` and related test files to support bulk WAL entries and added tests for encoding and handling bulk data.
* feat/bulk-wal:
- **Update `greptime-proto` Dependency**: Updated the `greptime-proto` dependency to a new revision in `Cargo.lock` and `Cargo.toml`.
- **Add `common-grpc` Dependency**: Added `common-grpc` as a dependency in `Cargo.lock` and `src/mito2/Cargo.toml`.
- **Refactor `BulkPart` Structure**: Removed `num_rows` field and added `num_rows()` method in `src/mito2/src/memtable/bulk/part.rs`. Updated related usages in `src/mito2/src/memtable/simple_bulk_memtable.rs`, `src/mito2/src/memtable/time_partition.rs`, `src/mito2/src/memtable/time_series.rs`,
`src/mito2/src/region_write_ctx.rs`, and `src/mito2/src/worker/handle_bulk_insert.rs`.
- **Implement `TryFrom` and `From` for `BulkWalEntry`**: Added implementations for converting between `BulkPart` and `BulkWalEntry` in `src/mito2/src/memtable/bulk/part.rs`.
- **Handle Bulk Entries in Region Opener**: Added logic to process bulk entries in `src/mito2/src/region/opener.rs`.
- **Fix `BulkInsertRequest` Handling**: Corrected `region_id` handling in `src/operator/src/bulk_insert.rs` and `src/store-api/src/region_request.rs`.
- **Add Error Variant for `ConvertBulkWalEntry`**: Added a new error variant in `src/mito2/src/error.rs` for handling bulk WAL entry conversion errors.
* fix: ci
* feat/bulk-wal:
Add bulk write operation in `opener.rs`
- Enhanced the region write context by adding a call to `write_bulk()` after `write_memtable()` in `opener.rs`.
- This change aims to improve the efficiency of writing operations by enabling bulk writes.
* feat/bulk-wal:
Enhance error handling and metrics in `bulk_insert.rs`
- Updated `Inserter` to improve error handling by capturing the result of `datanode.handle(request)` and incrementing the `DIST_INGEST_ROW_COUNT` metric with the number of affected rows.
* feat/bulk-wal:
### Remove Encode Error Handling for WAL Entries
- **`error.rs`**: Removed the `EncodeWal` error variant and its associated handling.
- **`wal.rs`**: Eliminated the `entry_encode_buf` buffer and its usage for encoding WAL entries. Replaced with direct encoding to a vector using `encode_to_vec()`.
2025-05-29 09:10:30 +00:00
Weny Xu
864cc117b3
fix: append noop entry when auto topic creation is disabled ( #6092 )
...
* feat: improve topic management and add stale records cleanup
* fix: fix unit tests
* chore: apply suggestions from CR
* chore: apply suggestions from CR
2025-05-16 11:26:47 +00:00
Yuhan Wang
41814bb49f
feat: introduce high_watermark for remote wal logstore ( #5877 )
...
* feat: introduce high_watermark_since_flush
* test: add unit test for high watermark
* refactor: submit a request instead
* fix: send reply before submit request
* fix: no need to update twice
* feat: update high watermark in background periodically
* test: update unit tests
* fix: update high watermark periodically
* test: update unit tests
* chore: apply review comments
* chore: rename
* chore: apply review comments
* chore: clean up
* chore: apply review comments
2025-04-18 12:10:47 +00:00
LFC
e23979df9f
chore: un-allow clippy's "readonly_write_lock" ( #5862 )
2025-04-10 02:05:50 +00:00
Ruihang Xia
c26e165887
refactor: check and fix super import ( #5846 )
...
* refactor: check and fix super import
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add to makefile
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* change dir
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-04-08 11:48:52 +00:00
Weny Xu
ac0f9ab575
refactor: remove backoff config ( #5808 )
...
* refactor: remove backoff config
* chore: update config.md
* fix: correct backoff config
* chore: change deadline to 120s
2025-04-07 07:22:22 +00:00
Yuhan Wang
f73b61e767
feat(remote-wal): add remote wal prune procedure ( #5714 )
...
* feat: add remote wal prune procedure
* feat: add retry logic and remove rollback
* chore: simplify the logic
* fix: remove REMOTE_WAL_LOCK
* fix: use in-memory kv
* perf: O(n) judgement
* chore: add single write lock
* test: add unit test
* chore: remove unused function
* chore: update comments
* chore: apply comments
* chore: apply comments
2025-04-03 08:11:51 +00:00
Weny Xu
d3a60d8821
feat: add limit for the number of running procedures ( #5793 )
...
* refactor: remove unused `messages`
* feat: introduce running procedure num limit
* feat: update config
* chore: apply suggestions from CR
* feat: impl `status_code` for `log-store` crate
2025-03-31 06:14:21 +00:00
fys
2b2ea5bf72
chore: upgrade some dependencies ( #5777 )
...
* chore: upgrade some dependencies
* chore: upgrade some dependencies
* fix: cr
* fix: ci
* fix: test
* fix: cargo fmt
2025-03-27 02:48:44 +00:00
Ruihang Xia
e81213728b
feat: add/correct some kafka-related metrics ( #5757 )
...
* feat: add/correct some kafka-related metrics
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix dumb issues
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* per-partition produce latency
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-03-25 19:16:39 +00:00
Lei, HUANG
a922dcd9df
refactor(mito): move wal sync task to background ( #5677 )
...
chore/move-wal-sync-to-bg:
### Refactor Log Store Task Management
- **Error Handling Enhancements**: Updated error handling for task management in `error.rs` by renaming `StartGcTask` and `StopGcTask` to `StartWalTask` and `StopWalTask`, respectively, and added a `name` field for more descriptive error messages.
- **Task Management Improvements**: Introduced `SyncWalTaskFunction` in `log_store.rs` to handle periodic synchronization of WAL tasks, replacing the previous atomic-based sync logic.
- **Backend Adjustments**: Modified `backend.rs` to use the new `StartWalTaskSnafu` for starting tasks, ensuring consistency with the updated error handling approach.
2025-03-10 08:22:35 +00:00
Weny Xu
c80d2a3222
fix: introduce gc task for metadata store ( #5461 )
...
* fix: introduce gc task for metadata kvbackend
* refactor: refine KvbackendConfig
* chore: apply suggestions from CR
2025-02-06 12:12:43 +00:00
Ruihang Xia
bd37e086c2
fix: improve error handling in pipeline and log in log store ( #5357 )
...
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-01-14 13:58:30 +00:00
Weny Xu
3d9df822ad
refactor: refactor PgStore ( #5309 )
...
* refactor: refactor PgStore
* fix: election use bytea and txn use Serializable to avoid read unrepeatable (#4 )
* fix: election use bytea as well
* fix: use Serializable to avoid read unrepeatable
* chore: remove unused error
* ci: enable pg kvbackend and sqlness
* ci: switch on pg_kvbackend feature
* fix: fix sqlness runner
* chore: add pg_kvbackend feature gate
* build(ci): add feature gate
* fix: add retry for `PgStore` txn
* fix: correct `SET_IDLE_SESSION_TIMEOUT`
---------
Co-authored-by: Yohan Wal <1035325592@qq.com >
Co-authored-by: CookiePieWw <profsyb@gmail.com >
2025-01-07 07:27:58 +00:00
Weny Xu
ca6e02980e
fix: overwrite entry_id if entry id is less than start_offset ( #4842 )
...
* fix: overwrite entry_id if entry id is less than start_offset
* feat: add `overwrite_entry_start_id` to options
* chore: update config.md
2024-10-18 06:31:02 +00:00
Kaifeng Zheng
a283e13da7
feat: set max log files to 720 by default, info log only ( #4787 )
...
* feat: set max log files to 720 by default, info log only
* expose max_log_files in tomls
* include dir info when panicing, limit max_log_files of err_log to 30, and that of slow_queries to opt.max_log_files
* fix clippy
* update config.md
* update expected config str
* limit err_log max files size to `max_log_files` too, include err info when panicing, put `max_l_f` in right position
* fix typos
* chore: config
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
---------
Co-authored-by: dennis zhuang <killme2008@gmail.com >
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2024-10-04 18:05:40 +00:00
JohnsonLee
47a3277d12
feat: customize channel information for sqlness tests ( #4729 )
...
* feat: add pg and mysql server_address options
* feat: start pg and mysql server(standalone)
* feat: start pg and mysql in distribute
* feat: finally get there, specify postgres sqlness
* feat: support mysql sqlness
* fix: license
* fix: remove unused import
* fix: toml
* fix: clippy
* refactor: BeginProtocolInterceptorFactory to ProtocolInterceptorFactory
* fix: sqlness pg connect
* fix: clippy
* Apply suggestions from code review
Co-authored-by: Yingwen <realevenyag@gmail.com >
* fix: rustfmt
* fix: reconnect pg and mysql when restart
* test: add mysql related sqlness
* fix: wait for start while restarting
* fix: clippy
* fix: cargo lock conflict
fix: Cargo.lock conflict
* fix: usage of '@@tx_isolation' in sqlness
* fix: typos
* feat: retry with backoff when create client
* fix: use millisecond rather than microseconds in backoff
---------
Co-authored-by: Yingwen <realevenyag@gmail.com >
2024-10-04 09:26:57 +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
Lei, HUANG
208afe402b
feat(wal): increase recovery parallelism ( #4689 )
...
* Refactor RaftEngineLogStore to use references for config
- Updated `RaftEngineLogStore::try_new` to accept a reference to `RaftEngineConfig` instead of taking ownership.
- Replaced direct usage of `config` with individual fields (`sync_write`, `sync_period`, `read_batch_size`).
- Adjusted test cases to pass references to `RaftEngineConfig`.
* Add parallelism configuration for WAL recovery
- Introduced `recovery_parallelism` setting in `datanode.example.toml` and `standalone.example.toml` for configuring parallelism during WAL recovery.
- Updated `Cargo.lock` and `Cargo.toml` to include `num_cpus` dependency.
- Modified `RaftEngineConfig` to include `recovery_parallelism` with a default value set to the number of CP
* feat/wal-recovery-parallelism:
Add `wal.recovery_parallelism` configuration option
- Introduced `wal.recovery_parallelism` to config.md for specifying parallelism during WAL recovery.
- Updated `RaftEngineLogStore` to include `recovery_threads` from the new configuration.
* fix: ut
2024-09-09 04:25:24 +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
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
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
Weny Xu
76dc906574
feat(log_store): introduce the CollectionTask ( #4530 )
...
* feat: introduce the `CollectionTask`
* feat: add config of index collector
* chore: remove unused code
* feat: truncate indexes
* chore: apply suggestions from CR
* chore: update config examples
* refactor: retrieve latest offset while dumping indexes
* chore: print warn
2024-08-19 03:48:35 +00:00
Weny Xu
d1472782d0
chore(log_store): remove redundant metrics ( #4570 )
...
chore(log_store): remove unused metrics
2024-08-16 02:23:21 +00:00
Weny Xu
c821d21111
feat(log_store): introduce the IndexCollector ( #4461 )
...
* feat: introduce the IndexCollector
* refactor: separate BackgroundProducerWorker code into files
* feat: introduce index related operations
* feat: introduce the `GlobalIndexCollector`
* refactor: move collector to index mod
* refactor: refactor `GlobalIndexCollector`
* chore: remove unused collector.rs
* chore: add comments
* chore: add comments
* chore: apply suggestions from CR
* chore: apply suggestions from CR
2024-08-13 06:15:24 +00:00
Weny Xu
2e2eacf3b2
feat: add SASL and TLS config for Kafka client ( #4536 )
...
* feat: add SASL and TLS config
* feat: add SASL/PLAIN and TLS config for Kafka client
* chore: use `ring`
* feat: support SASL SCRAM-SHA-256 and SCRAM-SHA-512
* fix: correct unit test
* test: add integration test
* chore: apply suggestions from CR
* refactor: introduce `KafkaConnectionConfig`
* chore: refine toml examples
* docs: add missing fields
* chore: refine examples
* feat: allow no server ca cert
* chore: refine examples
* chore: fix clippy
* feat: load system ca certs
* chore: fmt toml
* chore: unpin version
* Update src/common/wal/src/error.rs
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
---------
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2024-08-12 12:27:11 +00:00
Weny Xu
3937e67694
feat: introduce new kafka topic consumer respecting WAL index ( #4424 )
...
* feat: introduce new kafka topic consumer respecting WAL index
* chore: fmt
* chore: fmt toml
* chore: add comments
* feat: merge close ranges
* fix: fix unit tests
* chore: fix typos
* chore: use loop
* chore: use unstable sort
* chore: use gt instead of gte
* chore: add comments
* chore: rename to `current_entry_id`
* chore: apply suggestions from CR
* chore: apply suggestions from CR
* refactor: minor refactor
* chore: apply suggestions from CR
2024-08-05 06:56:25 +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
Weny Xu
52a9a748a1
revert: lz4 compression ( #4329 )
...
* Revert "test: revert lz4 compression"
This reverts commit 180dda13fa .
* refactor: remove compression field
2024-07-10 04:24:40 +00:00
Weny Xu
ea2d067cf1
feat: implement the OrderedBatchProducer ( #4134 )
...
* feat: implement the `OrderedBatchProducer`
* test: add test of cancel safety
* chore: apply suggestions from CR
* chore: apply suggestions from CR
* refactor: simplify the `BackgroundProducerWorker`
* feat: implement the OrderedBatchProducer v2
* refactor: switch to `OrderedBatchProducer`
* chore: rename to `MAX_FLUSH_QUEUE_SIZE`
* refactor: switch to `OrderedBatchProducerV2`
* refactor: remove `OrderedBatchProducerV1`
* test: add tests
* refactor: make config configurable
* refactor: minor refactor
* chore: remove unused code
* chore: remove `benchmarks` crate
* chore: update config doc
* chore: remove unused comment
* refactor: refactor client registry
* refactor: rename `max_batch_size` to `max_batch_bytes`
* chore: use constant value
* chore: ensure serialized meta < ESTIMATED_META_SIZE
* chore: apply suggestions from CR
* chore: remove the `CHANNEL_SIZE`
* chore: apply suggestions from CR
* fix: ensure serialized meta < ESTIMATED_META_SIZE
* chore: apply suggestions from CR
* chore: apply suggestions from CR
2024-06-18 07:20:01 +00:00
Weny Xu
b3a4362626
test: run test_flush_reopen_region and test_region_replay with KafkaLogStore ( #4083 )
...
* feat: add `LogStoreFactory` to `TestEnv`
* feat: add `multiple_log_store_factories` template
* test: run `test_flush_reopen_region` and `test_region_replay` with `KafkaLogStore`
* chore: move deps to workspace
* chore: apply suggestions from CR
2024-06-04 08:11:15 +00:00
Weny Xu
6e9a9dc333
refactor(log_store): remove associated type Namespace and Entry in LogStore ( #4038 )
...
* refactor(log_store): remove associated type `Namespace` in `LogStore`
* fix(test): filter entries
* refactor: ignore incomplete parts
* refactor: simplify `RawEntryReaderFilter`
* chore: avoid cloning
* test: add tests for `maybe_emit_entry`
* refactor: remove `Namespace` trait and rename `LogStoreNamespace` to `Namespace`
* chore: apply suggestions from CR
* refactor: refine `entry` method signature
* feat: ingore any potential incomplete parts
* refactor: rename `namespace` to `provider`
* chore: add debug assertion
* refactor: associated type `Entry` in `LogStore`
* refactor: renamse `namespace` to `provider`
* refactor: remove unwrap
* refactor: let `remaining_entries` return a optional vector
* test: add basic tests for kafka logstore
* refactor: move `append` method under `cfg(test)`
* refactor: rename `RawEntry` to `Entry`
* refactor: rename `CorruptedLogEntry` to `CorruptedEntry`
* test: add tests for handling corrupted raw entry stream
* refactor: rename `ns` to `provider`
* refactor: remove `entry_stream.rs` file
* chore: remove unused code
* chore: update comments
* chore: apply suggestions from CR
* chore: update comments
* chore: apply suggestions from CR
* chore: remove Deref
* chore: add comments
* fix: ignores tail corrupted data
* chore: add comments
* fix: add `MIN_BATCH_SIZE` limit
2024-05-29 13:44:01 +00:00
Weny Xu
466f7c6448
feat: add RawEntryReader and OneshotWalEntryReader trait ( #4027 )
...
* feat: add `RawEntryReader` and `OneShotWalEntryReader` trait
* chore: rename `OneShot` to `Oneshot`
* refacotr: remove `region_id` from `OneshotWalEntryReader`
2024-05-24 06:30:50 +00:00
Lei, HUANG
0d055b6ee6
refactor: remove unused log config ( #4021 )
2024-05-23 08:59:42 +00:00