dcapwell commented on code in PR #103:
URL: https://github.com/apache/cassandra-accord/pull/103#discussion_r1674878589
##########
accord-core/src/main/java/accord/local/Node.java:
##########
@@ -241,7 +242,21 @@ public long epoch()
private synchronized EpochReady onTopologyUpdateInternal(Topology
topology, boolean startSync)
{
Supplier<EpochReady> bootstrap = commandStores.updateTopology(this,
topology, startSync);
- return this.topology.onTopologyUpdate(topology, bootstrap);
+ Supplier<EpochReady> ordering = () -> {
+ if (this.topology.isEmpty()) return bootstrap.get();
+ return order(this.topology.epochReady(topology.epoch() - 1),
bootstrap.get());
+ };
+ return this.topology.onTopologyUpdate(topology, ordering);
+ }
+
+ private static EpochReady order(EpochReady previous, EpochReady next)
+ {
+ if (previous.coordination.isDone()) return next;
Review Comment:
if we did `flatMap` 100% of the time then everything is linked together, so
this allows the more common case (epochs don't all happen at once) to avoid
linking
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]