Bela Ban
Bela Ban
When we add or remove a server (e.g. `add(D)`), the command is saved in the log as an internal command. However, when we do a log compaction, the internal command...
When a new member `D` is added to `{A,B,C}`, then all configuration files need to be changed to set `members="A,B,C,D"`. This should be done dynamically, so that no configuration file...
Add a stress test to `RaftTest`: the leader should call `setAsync()` 1M times; this mimics a stress test where the sender uses an async API (e.g. `AsyncCounter`) and does not...
When a follower gets an `AppendEntriesRequest`, it appends the entries to its log (1 write to disk) and then tries moving `commit-index` (1 write to disk). If we could merge...
Demo is at [1]. There should also be a reference to the demo in the manual. [1] http://belaban.blogspot.com/2020/12/running-jgroups-raft-as-service.html
E.g. attributes in `ELECTION` have changed
Currently, read requests can either be dirty (handled locally) or are added to the log as normal entries. In the latter case, there's a write to disk which is costly....
Calling the `MulticastSocket(int port)` constructor multiple times (with the _same port_ argument) in the same process fails (this is supposed to work). Calling the `MulticastSocket(SocketAddress a)` constructor with a non-null...