Over the weekend I ran long running HA tests using 3, 5, and 7 node clusters. All weekend the tests continuously killed and restarted nodes, and the results were flawless. I think the Raft implementation is just about ready to be released in 2.1, but now we need to tackle the configuration issues and some problems with the multi-primary client’s.
The goal is no dependencies, so ConcurrentMap with a cleaner thread seems fine
A lot of things that are cached can actually be cleaned up on puts also. A lot of changes have or can have sequential IDs, and in that case it could just be a matter of tracking the oldest ID and removing it when map.size() > cacheSize and incrementing the ID. Maybe we should tackle the simple stuff like exceptions and toString() formatting and do the caches separately
We may want to just create a simple generic cache though