- Remove unnecessary copy in snapshot stream (#269)
- Improve doc
- Remove the concept of snapshot tag. (#260)
- Remove lol-bridge.
- Remove lol-monitor.
- Rework API design.
- Deprecate snapshot-related functions in RaftStorage. (#237)
- Fix doc.
- Add atomic-counter example. (#213)
- Fix a bug in gateway. (#207)
- Add new APIs.
- Implement new Gateway. (#199)
- Connection timeout in sending user data. (#202)
- Add ClusterInfo RPC.
- Dependency update.
- Implement Tune message. (#173)
- Fix error handling. (#168)
- Use JoinHandle#abort to abort the running thread. (#159)
- Add code coverage measurement. (#161)
- Now based on Tokio 1.0. (#144)
- Stability Improvement: Introduce Pre-Vote phase. (#139)
- Use prost's new feature to generate Bytes as bytes. (#150)
- Performance Inprovement: Change internal serializer from MessagePack to Bincode. (#152)
- Revert on-faliure log blocking which was introduced in 0.5.3 (@07465c5)
- Refactor code about cluster membership. (#133)
- Update documents.
- Introduce new failure detector based on Phi Accrual Failure Detection algorithm. (#122)
- Heartbeat thread is maintained per follower node. (#114)
- The initial node immediately starts the initial election by sending TimeoutNow to itself. (#118)
- Fix critical bug in fold snapshot. (#124)
- Fix bug in election. Ballot should accept only one single writer. (#119)
- Hide connection::Endpoint which wasn't my intention to expose.
- Fix tests
- Clear separation between library and tonic infrastructure.
- RaftApp's apply_message now returns MakeSnapshot.
- Change Id's format to support TLS.
- Insert adaptive wait after apply failure to avoid infinitely repeat failing calls.
- Log is blocked on apply failure to avoid inflation.
- Optimize log replication.
- Fix some issues with membership change.
- Remove Sync constraint from SnapshotStream.
- Implement FileSnapshot.
- Ractor out lol-test as a crate.
- Wait for noop entry to be committed before appending new entries in the new term.
- Add AddServer/RemoveServer APIs to proto file. Deprecate InitCluster API.
- RaftApp abstraction update: Notion of Snapshot Tag.
- Performance optimization: Command in log entry is now Bytes and it's applied to RaftApp in zero-copy.
- Error handling improved: RaftStorage now returns Result so callers can handle failures.
- Many fixes especially with persistent backend.
- Rename protoimpl to proto_compiled because it is ambiguous.
- Introduce snapshot inventory: Application snapshot is now put in snapshot inventory and sent to other servers in stream.
- Snapshot type is generalized: Now it is not restricted to
Vec<u8>
. - Change client interaction: ProcessReq/Rep type is defined.
- Add apply_index to apply_message and install_snapshot so state machine can remember the last applied index to skip the previous messages after reboot.
- Implement copy snapshot. Now you can make a snapshot by either folding the log before the last applied index or returning snapshot from apply_message.
- Linking with RocksDB backend is now optional.
- Implement RocksDB implementation of the RaftStorage.
- Introduce RaftStorage abstraction.