Repository navigation
feat: merge develop → main (v0.2.3) — CAS, unified client API, Raft correctness & performance #277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from all commits
Commits
Show all changes
166 commits
Select commit
Hold shift + click to select a range
d8bd658
feat #43: When a Raft leader is elected, it should first send an empt…
JoshuaChi 8fb91b3
Feature/59 benchmark (#72)
JoshuaChi 2f97f6c
chore(ci) #73: prepare release for v0.1.2
JoshuaChi 1756873
Merge branch 'main' into develop
JoshuaChi e53ba82
feat #79: Snapshot feature, Learner join cluster feature and develope…
JoshuaChi 729e100
feat #79: optimize v0.1.3 CHANGELOG
JoshuaChi cebfdbb
Merge branch 'main' into develop
JoshuaChi 0a057c8
fix #133: Example project: File/RocksDB storage engines can fail to s…
JoshuaChi bd44015
fix #133: fix fmt
JoshuaChi 265c250
fix #133: fix fmt
JoshuaChi 2e88aae
fix #133: fix fmt
JoshuaChi 598f011
fix #133: update REAMDE
JoshuaChi 68de4c7
feat #135: Enable tokio via three-nodes-cluster example
JoshuaChi 3fe4cdc
feat #135: Enable tokio_metrics via three-nodes-cluster example
JoshuaChi f7911c1
feat #135: Enable tokio_metrics via three-nodes-cluster example
JoshuaChi 4e30171
feat #138: v0.1.4 - target 100K throughput
JoshuaChi b03a606
fix #145: fix Bytes compatible bugs in examples folder
JoshuaChi f3f3430
fix #150: type issue
JoshuaChi 32cc365
fix #151: fix mmap bug
JoshuaChi 0713943
fix #152: Update README by introduce new feature from v0.1.4
JoshuaChi ff1e251
fix #153: fix code review feedback
JoshuaChi 8659663
fix #154: code review feedback
JoshuaChi 901008f
fix #155: fix code review feedback
JoshuaChi a3c314d
fix #156: fix code review feedback
JoshuaChi 58f97dc
fix #157: fix code review feedback
JoshuaChi f145325
fix #158, #159: fix code review feedback
JoshuaChi 7e0d96e
fix #164: fix code review bug
JoshuaChi b3e119e
fix #161: fix code review feedback
JoshuaChi 9ea5116
fix #164: fix doc issues
JoshuaChi 2169613
Merge branch 'main' into develop
JoshuaChi be93d34
feat #167: workspace structure (#175)
JoshuaChi d9636d1
feat #172: Feature ttl support (#176)
JoshuaChi 2569af0
fix #172: format code to pass rustfmt checks
JoshuaChi e1143d0
fix #172: Replace tokio-tar with astral-tokio-tar to resolve CVE-2025…
JoshuaChi 803400a
fix #172: Resolve Tokio runtime nesting issue in TTL benchmark
JoshuaChi 69279ee
fix #172: Resolve clippy unused_unit warnings and improve Makefile be…
JoshuaChi 56f1410
feat #174: Implement lock-free Watch mechanism for real-time key moni…
JoshuaChi 6c90b57
feat #179: Implement single-node cluster support for dynamic expansio…
JoshuaChi 97fab24
feat #182: Add EmbeddedEngine API with leader election notification &…
JoshuaChi ec736ab
doc #185: Add service discovery pattern guide for DNS/registry use cases
JoshuaChi c653330
doc #187: Restructure examples documentation to match folder structure
JoshuaChi 635b3cd
doc #187: Fix broken benchmark documentation link in three-nodes-clus…
JoshuaChi 5ed3544
docs #192: add comprehensive read consistency documentation
JoshuaChi e0b4142
feat(bench) #193: add --key-space parameter for hot-key testing
JoshuaChi 9220e58
perf(watch) #194: Skip protobuf decoding when no active watchers exist
JoshuaChi 0312010
docs(bench) #195: Update v0.2.0 benchmark report with accurate v0.1.4…
JoshuaChi 208df8b
feat #196: Implement Watch feature with gRPC streaming and examples
JoshuaChi 6d8ce99
docs #204: Prepare v0.2.0 release documentation
JoshuaChi 2381550
fix #204: Suppress rustls-pemfile unmaintained warning in dependency …
JoshuaChi 4163f9a
fix #204: Fix flaky test and update documentation for v0.2.0
JoshuaChi 9123484
fix #205: Enable graceful shutdown during node startup phase
JoshuaChi 0f94d9e
docs #204: Fix documentation links and optimize workspace doc generation
JoshuaChi 52e1e74
doc #204: Simplify feature flags and add use-case guidance
JoshuaChi f7b0418
chore #204: Prepare v0.2.0 release with workspace cleanup
JoshuaChi 793ab4c
style #204: Fix import ordering to comply with rustfmt stable
JoshuaChi faa62b3
fix #204: Address code review feedback for v0.2.0 release
JoshuaChi 1b55a6f
perf #208: eliminate redundant async calls in leader write hot path
JoshuaChi 86a1278
fix #204: update both fields in update_cluster_metadata to prevent st…
JoshuaChi bcf2239
fix #204: Increase election RPC timeout to fix flaky tests
JoshuaChi f601479
ci #204: Support docs as alias for doc in commit message validation
JoshuaChi b8eb206
docs #204: Prepare v0.2.0 for HN launch - simplify docs and set expec…
JoshuaChi 8204c5c
docs #204: Fix documentation links and add integration mode quick sta…
JoshuaChi 6e0c610
refactor(raft) #209: Architecture review - consolidate v0.2.0 improve…
JoshuaChi 84c1539
doc #224: Fix rustdoc links and improve documentation generation
JoshuaChi 40d7c47
doc #224: Fix markdown table formatting and typo in documentation
JoshuaChi c4a6e1f
doc #225: Prepare multi-crate publishing documentation and configurat…
JoshuaChi ea370fe
chore #227: Merge branch 'main' into develop
JoshuaChi 0db60ee
doc #227: fix working directory and version requirements
JoshuaChi 1d42cb4
chore #228: Merge branch 'main' into develop
JoshuaChi dcae76c
fix #228: Critical: Inconsistent reads in single-node mode (#229)
JoshuaChi 4b8e0cb
perf #228: Optimize wait_applied with fast path and comprehensive tests
JoshuaChi 72a3775
chore: Release v0.2.1 & Merge branch 'main' into develop
JoshuaChi 8df8b08
docs #232: Fix docs.rs build and optimize feature configuration
JoshuaChi eadcde3
docs #232: Update vision and philosophy in README and overview
JoshuaChi 76ecc3e
perf #233: Add embedded mode benchmark and expose node_id for testing
JoshuaChi 75a37b8
feat #234: feat: Add cluster state APIs to EmbeddedEngine for HA depl…
JoshuaChi dad5461
fix #235: Snapshot purge fails in single-node cluster with NoPeersAva…
JoshuaChi 3c70c63
fix #235: Snapshot purge fails in single-node cluster with NoPeersAva…
JoshuaChi 163f7a9
fix #235: Snapshot purge fails in single-node cluster with NoPeersAva…
JoshuaChi a4dd343
feat #233: Benchmark embedded mode performance and clarify standalone…
JoshuaChi ef0c131
test(bench) #233: fix LeaseRead test mock and add embedded mode bench…
JoshuaChi 4c1156a
ci #237: fix GitHub Actions disk space issue and improve CI workflow
JoshuaChi 0176abf
perf #236: Optimize LinearizableRead to avoid unnecessary waiting on …
JoshuaChi df0edf7
test #236: Improve test stability and fix CI build
JoshuaChi f0f7801
feat #236: Implement ReadIndex batching for LinearizableRead optimiza…
JoshuaChi 1b932e9
refactor #236: Unify leadership verification and eliminate redundant …
JoshuaChi ace603f
refactor #236: Migrate LinearizableRead tests to core and strengthen …
JoshuaChi a650ef7
perf(bench) #236: Fix test hang + optimize benchmarks
JoshuaChi fbf63da
test #236: Consolidate client read tests into leader_state_client_rea…
JoshuaChi 5be0100
fix #241: start_with() fails when CONFIG_PATH is not set
JoshuaChi 222d10b
refactor #234: Simplify Makefile and improve documentation workflow
JoshuaChi ca21713
feat(storage) #242: Implement comprehensive durability test suite and…
JoshuaChi 8dbfba7
fix(storage) #243: Add read protection during snapshot restoration
JoshuaChi 96f3d49
test(snapshot) #243: Add Learner snapshot concurrent replication test
JoshuaChi 9954d4e
refactor #244: refactor integration tests
JoshuaChi fcb8882
fix #240: Address code review feedback for v0.2.2 release
JoshuaChi 83be905
Merge pull request #240 from deventlab/feature/236_readindex
JoshuaChi 264c0f3
fix #240: Fix watch benchmark and allow bincode unmaintained warning
JoshuaChi 6108f8f
chore #240: Prepare v0.2.2 release
JoshuaChi 5c4138e
Feature/245 refactor server ut (#247)
JoshuaChi 9a13bc7
Merge branch 'main' into develop
JoshuaChi 429246b
Merge branch 'main' into develop
JoshuaChi 74c8934
refactor #258: Unify client API with CAS support
JoshuaChi 87a1c11
refactor #258: Replace bool succeeded with WriteResult message
JoshuaChi a06f08a
refactor #258: Add Deref to Client for direct method access
JoshuaChi 7685051
refactor #258: Remove LocalClientError, use ClientApiError directly
JoshuaChi f46078c
refactor #258: Rename test directory local_kv_client to embedded_client
JoshuaChi 2af93e4
refactor #258: Unify watch() API and finalize client architecture
JoshuaChi f9d7ddc
refactor #258: rename StandaloneServer to StandaloneEngine for consis…
JoshuaChi f22937e
docs #258: update StandaloneServer to StandaloneEngine in documentation
JoshuaChi 5b5bbf2
fix #258: fix compilation errors after CAS tests and API refactoring
JoshuaChi 2ca1a97
refactor #258: remove client.kv() calls in all tests
JoshuaChi d990dcc
refactor #258: migrate embedded_client_operations to use EmbeddedEngine
JoshuaChi 8c12f6e
refactor #258: migrate linearizable_read_consistency_embedded to Embe…
JoshuaChi 180ff9d
refactor #258: migrate linearizable_read_batching_embedded to Embedde…
JoshuaChi 59c273f
test #258: add P0 error handling tests for ClientApiError
JoshuaChi 2bcf620
refactor #258: make EmbeddedEngine thread-safe with Arc wrapper
JoshuaChi 29add44
refactor #263: Return actual CAS operation results to clients (Raft p…
JoshuaChi 051ae94
refactor #263: Return actual CAS operation results to clients (Raft p…
JoshuaChi 94875f3
refactor #258: Unify read consistency control + remove CommitHandlerC…
JoshuaChi ac3511b
refactor #263: Implement FatalError event propagation for SM Worker f…
JoshuaChi d1c43fc
refactor #266: Implement drain-based batch architecture for client co…
JoshuaChi f4ffc53
fix #266: Correct BatchBuffer::take_with_trigger() to return first N …
JoshuaChi bbac2ee
refactor #258: Split raft_test.rs into modular test structure with ca…
JoshuaChi cbe9dfb
perf #258: Optimize drain-based batch architecture with parameter tuning
JoshuaChi 4212d14
perf #258: Encapsulate backpressure metrics for zero-cost abstraction…
JoshuaChi 9f6a7a4
perf #258: Encapsulate backpressure metrics for zero-cost abstraction…
JoshuaChi c6f6a72
refactor #267: Optimize batch processing with deferred RaftRequestWit…
JoshuaChi 23d2476
perf #268: Unify write and linearizable read into single RPC, extract…
JoshuaChi a732d4c
fix #268: Fix SM Worker channel handling in CommitHandler tests and o…
JoshuaChi 44edb51
fix #268: Remove incorrect BatchBuffer tests that assumed take_all() …
JoshuaChi fca39f6
perf #268: Batch I/O in FileStateMachine and fix read consistency pol…
JoshuaChi c724923
fix #268: Propagate persist error in lease_background_cleanup to prev…
JoshuaChi f7428ff
fix #269: Route client.get() with no policy to leader to match server…
JoshuaChi a40eaa9
fix #269: Do not crash node when ClusterConf response receiver is dro…
JoshuaChi 3c815dd
fix #258: Move snapshot check to ApplyCompleted handler in all role s…
JoshuaChi cad3a16
fix #270: Add snapshot trigger to Follower/Learner ApplyCompleted han…
JoshuaChi ec65932
refactor #271: Simplify log purge to independent per-node model (Raft…
JoshuaChi 220c5ea
fix(raft) #272: eliminate linearizable read self-blocking via event-d…
JoshuaChi 4e59df4
refactor #272: remove time_threshold_ms from ReadBatchingConfig
JoshuaChi b18eea4
fix #272: use tmpdir and TCP-ready wait in test_join_cluster_scenario2
JoshuaChi 9f00028
feat #273: enforce MSRV 1.85 via Cargo.toml, README, and CI verification
JoshuaChi 3904940
fix(snapshot) #270: Follower/Learner snapshot trigger blocked by Lead…
JoshuaChi fbf59b4
refactor #267: Replace BatchBuffer<ProposeTuple> with SoA ProposeBatc…
JoshuaChi b62f4ae
fix(ci) #273: Update CI dependencies for Rust 1.85 MSRV compatibility
JoshuaChi 2c60c33
fix(ci) #273: Downgrade cargo-nextest to 0.9.100 for Rust 1.85 compat…
JoshuaChi f5f80de
fix #273: Raise CI scalability test threshold to 500x for disk I/O sp…
JoshuaChi 87fe32d
docs #259: update embedded bench guide with make clean step and auto-…
JoshuaChi bf89218
fix #273: ignore flaky scalability tests, revert CI threshold to 100x
JoshuaChi 33be4ff
fix #274: update CONTRIBUTING.md target branch from develop to main
JoshuaChi ee1dd6a
fix #258: resolve flaky tests under parallel test load
JoshuaChi 5dff3b5
refactor #258: clarify pending_reads drain loop with explicit key col…
JoshuaChi 9dba319
fix #258: log done signal write error and update CHANGELOG for v0.2.3
JoshuaChi 788c276
ci #273: skip commit check for develop→main and pin cargo-deny to 0.18.3
JoshuaChi a2cba7b
ci #277: remove cargo-deny version pin, stable toolchain supports latest
JoshuaChi e9ff737
ci #277: force stable toolchain in dependency-audit via RUSTUP_TOOLCH…
JoshuaChi 9ceef49
ci #277: revert MSRV to 1.88, remove 1.85 compatibility workarounds
JoshuaChi 47469b8
ci #277: upgrade bytes to 1.11.1, remove unused OpenSSL license entry
JoshuaChi 55e7ab3
ci #277: pin cargo-nextest to 0.9.114 for MSRV 1.88 compatibility
JoshuaChi 8586b08
docs #277: add v0.2.3 benchmark report with AWS 3-node vs etcd compar…
JoshuaChi b31d0e3
fix #277: notify pending_reads and sender on FatalError and lease ver…
JoshuaChi 0b19e76
fix #277: address PR code review feedback
JoshuaChi a1ab14c
fix #277: remove incorrect debug_assert_eq in broadcast_watch_events
JoshuaChi e910ccf
fix #277: address remaining PR review feedback
JoshuaChi 0a6a66c
fix #277: fix flaky failover tests under parallel test load
JoshuaChi 69cfee3
fix #277: tighten test assertions per PR review
JoshuaChi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes
File renamed without changes.
File renamed without changes.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.