The Split-Brain documentation states that…
"Each write is timestamped and when the connection is restored each master will share their new data. The newest write will win. "
But what about cases where all writes are independent, but there’s no way of KeyDB knowing whether they’re dependent or independent?
For example a module command like…
MODULE.COMMAND keyA valueA
In some cases I could want the most recent to overwrite any older commands, but in some cases these could be independent writes to RedisGraph where I want to make sure every single write is replicated.
What are the semantics in these cases and how can I ensure each outcome when desired?
And what about non-split brain scenarios, do all writes just automatically stream to the other masters and execute without any timestamp comparisons?
Also how can it differentiate between modules reads vs writes?
Some context specifically on RedisGraph:
The reduction in memory consumption is relevant for using RedisGraph in Redis 6.0.1 and up. In this case, during RDB save/load (BGSAVE and replication sequence) we split the graph into multiple keys for replication so the additional memory overhead of replicating a graph is significantly reduced. For 5.0.x we still pass the graph object as a whole key.