Skip to content

Feature/59 benchmark#72

Merged
JoshuaChi merged 9 commits intodevelopfrom
feature/59-benchmark
Apr 20, 2025
Merged

Feature/59 benchmark#72
JoshuaChi merged 9 commits intodevelopfrom
feature/59-benchmark

Conversation

@JoshuaChi
Copy link
Copy Markdown
Contributor

@JoshuaChi JoshuaChi merged commit 8fb91b3 into develop Apr 20, 2025
2 of 3 checks passed
@JoshuaChi JoshuaChi deleted the feature/59-benchmark branch April 20, 2025 03:08
JoshuaChi added a commit that referenced this pull request Apr 20, 2025
…y log entry. feat #66: Refactor the Errors to distinguish between protocol logic errors and system-level errors. feat #72: add benchmark

* feat #43: When a Raft leader is elected, it should first send an empty log entry. 
1. implement verify_leadership_in_new_term 
2. refactor verify_leadership_in_new_term and enforce_quorum_consensus

* feat #66: Refactor the Errors to distinguish between protocol logic errors and system-level errors.

* feat #72: add benchmark

* feat #71: add client usage example

* feat #59: Benchmarking against etcd v3.5, Enhance examples/three-nodes-cluster with Makefile

* fix: #70 Node Logs Exiting Program After Stress Test — Unexpected or Simulated Shutdown
JoshuaChi added a commit that referenced this pull request Oct 16, 2025
* feat #43: When a Raft leader is elected, it should first send an empty log entry. feat #66: Refactor the Errors to distinguish between protocol logic errors and system-level errors.

* feat #43: When a Raft leader is elected, it should first send an empty log entry. 
1. implement verify_leadership_in_new_term 
2. refactor verify_leadership_in_new_term and enforce_quorum_consensus

* feat #66: Refactor the Errors to distinguish between protocol logic errors and system-level errors.

* Feature/59 benchmark (#72)

* feat #71: add client usage example

* feat #59: Benchmarking against etcd v3.5, Enhance examples/three-nodes-cluster with Makefile

* fix: #70 Node Logs Exiting Program After Stress Test — Unexpected or Simulated Shutdown

* feat #79: Snapshot feature, Learner join cluster feature and developer-friendly StorageEngine and StateMachine

* feat #59: Refactor state_machine_commit_listener into a separate function to improve visibility across all newly spawned threads.

* feat #79: Add snapshot feature

* fix #90: Refactor: Decouple Client Command Protocol from Raft Internal Log Payload Type

* feat #89: Add auto-discovery support for new learner nodes

* feat #101: Revised learner join process with promotion/fail semantics

* feat #45: Implemented first/last index for term to resolve replication conflicts

* fix #106: Retry leadership noop confirmation until timeout

* feat #102: Automatic node removal 

* feat #109: Enable RPC connection cache

* fix #107: 1. Add back rpc connection params 2. Change parking lot sync lock to Tokio async lock in RaftMembership 3. optimize MembershipGuard for performance. Remove read locker.

* feat #110: 1. add new events SnapshotCreated and LogPurgeCompleted 2. decouple Leader snapshot create to several events 3. refactor raft log index generation from pre_allocate_raft_logs_next_index to pre_allocate_id_range 4. optimize LocalLogBatch structure - based on performance analysis

* feat #119: Make the StorageEngine  trait more developer-friendly

* feat #120: Make the StateMachine trait more developer-friendly

* fix #121: Election: higher term vote request should be updated immediately and reset voted_for

* feat #122: Refactor compress and decompress snapshot logic from StateMachine to StateMachineHandler

* fix #123: Replace global tracing log with trace_test crate

* feat #125: Make rocksdb adaptor as feature. Move sled implementation as example

* feat #79: optimize v0.1.3 CHANGELOG

* fix #133: Example project: File/RocksDB storage engines can fail to start when path is already locked by another node

* fix #133: fix fmt

* fix #133: fix fmt

* fix #133: fix fmt

* fix #133: update REAMDE

* feat #135: Enable tokio via three-nodes-cluster example

* feat #135: Enable tokio_metrics via three-nodes-cluster example

* feat #135: Enable tokio_metrics via three-nodes-cluster example

* feat #138: v0.1.4 - target 100K throughput

* refs #138: optimize to use long lived peer tasks for append entries request only

* refs #138: try to fix race issue - Multiple threads can pass the initial check and all create new appenders

* feat #138: 1. introduce crossbeam 2. optimize buffered_raft_log by creating a flush worker pool with configurable number of workers to handle persistence operations

* feat #138: optimize flush_workers as configure

* feat #138: optimize channel_capacity into configure

* feat #139: work on a reliable monitoring metric for resource utilization

* feat #140: Optimize proto bytes fields to use bytes::Bytes

* feat #140: switch Into<Bytes> to AsRef<[u8]>

* fix #141: Optimize RocksDB write path and Raft log loop for lower latency

* feat 142: Add Read Consistency Policy Support and Lease-Based Read Optimization

* feat #142: update v0.1.4 bench report

* feat #142: add client doc guide

* feat #143: Refactor gRPC compression configuration for Raft transport (performance optimization) - step1: disable server side client rpc compress response

* feat #143: Refactor gRPC compression configuration for Raft transport (performance optimization)

* feat #143: add performance diagram

* feat #138: ready to publish v0.1.4

* feat #138: add ut

* fix #146: buffered_raft_log.rs Code Reviews

* fix #146: update bench report

* fix #145: Bug: Undefined Behavior from Incorrect Lifetime Conversion in Mmap Zero-Copy Path

* fix #148: fix rocksdb storage engine flush bug

* fix #147: fix file state machine bug

* fix #145: fix Bytes compatible bugs in examples folder

* fix #150: type issue

* fix #151: fix mmap bug

* fix #152: Update README by introduce new feature from v0.1.4

* fix #153: fix code review feedback

* fix #154: code review feedback

* fix #155: fix code review feedback

* fix #156: fix code review feedback

* fix #157: fix code review feedback

* fix #158, #159: fix code review feedback

* fix #164: fix code review bug

* fix #161: fix code review feedback

* fix #164: fix doc issues
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant