* Possibility to prefer oldest in ddata writes and reads * enabled for Cluster Sharding * New ReadMajorityPlus and WriteMajorityPlus * used by Cluster Sharding, with configuration * also possible to define ReadAll in config
This commit is contained in:
parent
d415211bf8
commit
4ba835d328
17 changed files with 767 additions and 196 deletions
|
|
@ -31,7 +31,7 @@ object WriteAggregatorSpec {
|
|||
consistency: Replicator.WriteConsistency,
|
||||
probes: Map[UniqueAddress, ActorRef],
|
||||
selfUniqueAddress: UniqueAddress,
|
||||
nodes: Set[UniqueAddress],
|
||||
nodes: Vector[UniqueAddress],
|
||||
unreachable: Set[UniqueAddress],
|
||||
replyTo: ActorRef,
|
||||
durable: Boolean): Props =
|
||||
|
|
@ -54,7 +54,7 @@ object WriteAggregatorSpec {
|
|||
consistency: Replicator.WriteConsistency,
|
||||
probes: Map[UniqueAddress, ActorRef],
|
||||
selfUniqueAddress: UniqueAddress,
|
||||
nodes: Set[UniqueAddress],
|
||||
nodes: Vector[UniqueAddress],
|
||||
unreachable: Set[UniqueAddress],
|
||||
replyTo: ActorRef,
|
||||
durable: Boolean): Props =
|
||||
|
|
@ -78,7 +78,7 @@ object WriteAggregatorSpec {
|
|||
consistency: Replicator.WriteConsistency,
|
||||
probes: Map[UniqueAddress, ActorRef],
|
||||
selfUniqueAddress: UniqueAddress,
|
||||
nodes: Set[UniqueAddress],
|
||||
nodes: Vector[UniqueAddress],
|
||||
unreachable: Set[UniqueAddress],
|
||||
replyTo: ActorRef,
|
||||
durable: Boolean)
|
||||
|
|
@ -91,6 +91,7 @@ object WriteAggregatorSpec {
|
|||
selfUniqueAddress,
|
||||
nodes,
|
||||
unreachable,
|
||||
shuffle = false,
|
||||
replyTo,
|
||||
durable) {
|
||||
|
||||
|
|
@ -148,7 +149,7 @@ class WriteAggregatorSpec extends AkkaSpec(s"""
|
|||
val nodeC = UniqueAddress(Address(protocol, "Sys", "c", 2552), 17L)
|
||||
val nodeD = UniqueAddress(Address(protocol, "Sys", "d", 2552), 17L)
|
||||
// 4 replicas + the local => 5
|
||||
val nodes = Set(nodeA, nodeB, nodeC, nodeD)
|
||||
val nodes = Vector(nodeA, nodeB, nodeC, nodeD)
|
||||
|
||||
val data = GSet.empty + "A" + "B"
|
||||
val timeout = 3.seconds.dilated
|
||||
|
|
@ -256,16 +257,42 @@ class WriteAggregatorSpec extends AkkaSpec(s"""
|
|||
|
||||
import ReadWriteAggregator._
|
||||
|
||||
calculateMajorityWithMinCap(minCap, 3) should be(3)
|
||||
calculateMajorityWithMinCap(minCap, 4) should be(4)
|
||||
calculateMajorityWithMinCap(minCap, 5) should be(5)
|
||||
calculateMajorityWithMinCap(minCap, 6) should be(5)
|
||||
calculateMajorityWithMinCap(minCap, 7) should be(5)
|
||||
calculateMajorityWithMinCap(minCap, 8) should be(5)
|
||||
calculateMajorityWithMinCap(minCap, 9) should be(5)
|
||||
calculateMajorityWithMinCap(minCap, 10) should be(6)
|
||||
calculateMajorityWithMinCap(minCap, 11) should be(6)
|
||||
calculateMajorityWithMinCap(minCap, 12) should be(7)
|
||||
calculateMajority(minCap, 3, 0) should be(3)
|
||||
calculateMajority(minCap, 4, 0) should be(4)
|
||||
calculateMajority(minCap, 5, 0) should be(5)
|
||||
calculateMajority(minCap, 6, 0) should be(5)
|
||||
calculateMajority(minCap, 7, 0) should be(5)
|
||||
calculateMajority(minCap, 8, 0) should be(5)
|
||||
calculateMajority(minCap, 9, 0) should be(5)
|
||||
calculateMajority(minCap, 10, 0) should be(6)
|
||||
calculateMajority(minCap, 11, 0) should be(6)
|
||||
calculateMajority(minCap, 12, 0) should be(7)
|
||||
}
|
||||
|
||||
"calculate majority with additional" in {
|
||||
import ReadWriteAggregator._
|
||||
|
||||
calculateMajority(0, 3, 1) should be(3)
|
||||
calculateMajority(0, 3, 2) should be(3)
|
||||
calculateMajority(0, 4, 1) should be(4)
|
||||
calculateMajority(0, 5, 1) should be(4)
|
||||
calculateMajority(0, 5, 2) should be(5)
|
||||
calculateMajority(0, 6, 1) should be(5)
|
||||
calculateMajority(0, 7, 1) should be(5)
|
||||
calculateMajority(0, 8, 1) should be(6)
|
||||
calculateMajority(0, 8, 2) should be(7)
|
||||
calculateMajority(0, 9, 1) should be(6)
|
||||
calculateMajority(0, 10, 1) should be(7)
|
||||
calculateMajority(0, 11, 1) should be(7)
|
||||
calculateMajority(0, 11, 3) should be(9)
|
||||
}
|
||||
|
||||
"calculate majority with additional and minCap" in {
|
||||
import ReadWriteAggregator._
|
||||
|
||||
calculateMajority(5, 9, 1) should be(6)
|
||||
calculateMajority(7, 9, 1) should be(7)
|
||||
calculateMajority(10, 9, 1) should be(9)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue