causal delivery of deltas, #22188
* keep track of delta interval versions and skip deltas that are not consequtive, i.e. when some delta message was lost * send the delta versions in the full state gossip to sync up the expected versions after dropped deltas * implementation of deltas for ORSet * refactoring of the delta types to allow for different type for the delta and the full state * extensive tests * mima filter * performance optimizations * simple pruning of deltas * Java API * update documentation * KeyId type alias * Use InternalApi annotation
This commit is contained in:
parent
94afbee179
commit
b700b840d1
41 changed files with 5010 additions and 1950 deletions
|
|
@ -0,0 +1,49 @@
|
|||
/**
|
||||
* Copyright (C) 2017 Lightbend Inc. <http://www.lightbend.com>
|
||||
*/
|
||||
package akka.cluster.ddata;
|
||||
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import akka.cluster.UniqueAddress;
|
||||
|
||||
// different delta type
|
||||
public class JavaImplOfDeltaReplicatedData2
|
||||
extends AbstractDeltaReplicatedData<JavaImplOfDeltaReplicatedData2, JavaImplOfDeltaReplicatedData2.Delta> {
|
||||
|
||||
public static class Delta extends AbstractReplicatedData<Delta> implements ReplicatedDelta, RequiresCausalDeliveryOfDeltas {
|
||||
@Override
|
||||
public Delta mergeData(Delta other) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaImplOfDeltaReplicatedData2 zero() {
|
||||
return new JavaImplOfDeltaReplicatedData2();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaImplOfDeltaReplicatedData2 mergeData(JavaImplOfDeltaReplicatedData2 other) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaImplOfDeltaReplicatedData2 mergeDeltaData(Delta other) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Delta> deltaData() {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaImplOfDeltaReplicatedData2 resetDelta() {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue