Github user ifesdjeen commented on a diff in the pull request:
https://github.com/apache/cassandra/pull/267#discussion_r219508033
--- Diff: src/java/org/apache/cassandra/locator/ReplicaPlans.java ---
@@ -61,26 +73,62 @@
return forSingleReplicaWrite(keyspace, token, replica);
}
+ public static ReplicaPlan.ForTokenWrite forLocalBatchlogWrite()
+ {
+ Token token =
DatabaseDescriptor.getPartitioner().getMinimumToken();
+ Keyspace systemKeypsace =
Keyspace.open(SchemaConstants.SYSTEM_KEYSPACE_NAME);
+ Replica localSystemReplica =
SystemReplicas.getSystemReplica(FBUtilities.getBroadcastAddressAndPort());
+
+ ReplicaLayout.ForTokenWrite liveAndDown =
ReplicaLayout.forTokenWrite(
+ EndpointsForToken.of(token, localSystemReplica),
+ EndpointsForToken.empty(token)
+ );
+
+ return forWrite(systemKeypsace, ConsistencyLevel.ONE, liveAndDown,
liveAndDown, writeAll);
+ }
+
/**
* Requires that the provided endpoints are alive. Converts them to
their relevant system replicas.
* Note that the liveAndDown collection and live are equal to the
provided endpoints.
- *
- * The semantics are a bit weird, in that CL=ONE iff we have one node
provided, and otherwise is equal to TWO.
- * How these CL were chosen, and why we drop the CL if only one live
node is available, are both unclear.
*/
- public static ReplicaPlan.ForTokenWrite forBatchlogWrite(Keyspace
keyspace, Collection<InetAddressAndPort> endpoints) throws UnavailableException
+ public static ReplicaPlan.ForTokenWrite forBatchlogWrite(String
localDataCenter, ConsistencyLevel consistencyLevel) throws UnavailableException
--- End diff --
> Either way, while we're here we should document in the caller the fact
that the provided consistencyLevel is not used, and that the
batchlogConsistencyLevel is used to clear the entries from the remote batch
logs once the real write has reached that consistency level.
not sure I understand what you mean, as we're using it both for cleanup and
for writing to batchlog.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]