Released 1.0.8

42 views
Skip to first unread message

Bela Ban

unread,
May 2, 2022, 6:11:14 AM5/2/22
to jgroup...@googlegroups.com
I'm happy to announce that we've just released 1.0.8, with the following
major features/bug fixes/performance enhancements:


FEATURES

* New FiledBasedLog log implementation. This implementation does a real
fsync() when data is appended (configurable via
RAFT.log_use_fsync="true|false"). Slower but correct on a crash.
MapDB and RocksDB implementations were removed.
[https://github.com/belaban/jgroups-raft/pull/118]


OPTIMIZATIONS

* Caching of uncommitted log entries. This avoids *all* reads from the
log except at startup, when the log is initialized from disk.
[https://github.com/belaban/jgroups-raft/issues/109]

* Batching of AppendEntriesRequests. Instead of sending
AppendEntriesRequests one-by-one from leader to followers, the leader
batches them into a single message. This amortizes the cost of a disk
write (fsync) both on the leader and on the followers.
[https://github.com/belaban/jgroups-raft/issues/116]

* The leader now sends the AppendEntriesRequests _before_ appending them
to its own log, so followers don't have to wait appending to their own
logs until after the fsync when the leader has completed.
[https://github.com/belaban/jgroups-raft/issues/155]

* Applying log entries to the state machines and moving the commit-index
is now done in a single operation, instead of one op / entry.
[https://github.com/belaban/jgroups-raft/issues/129]

* The RequestTable and LogCache now use a ring buffer rather than a
SkipListHashMap (more efficient)
[https://github.com/belaban/jgroups-raft/issues/138]
[https://github.com/belaban/jgroups-raft/issues/132]

For a full list of changes see [1].

Enjoy!

Francesco, Pedro, Bela

[1] https://github.com/belaban/jgroups-raft/milestone/14?closed=1


--
Bela Ban | http://www.jgroups.org

Reply all
Reply to author
Forward
0 new messages