mansikhara opened a new pull request, #257:
URL: https://github.com/apache/cassandra-analytics/pull/257
Keyspaces declared with the <replicas>/<transient> replication factor (e.g.
'3/1') use witness replicas, which do not hold complete data, so the bulk
reader must read only from full replicas.
- TokenRangeReplicasResponse.ReplicaInfo gains an optional
witnessesByDatacenter field, validated against the replication factor.
- CassandraRing records each range's witnesses (serialization format v3) and
exposes a full-replicas-only view.
- PartitionedDataLayer selects only full replicas as primary, backup and
incremental repair replicas; ALL is satisfied by every full replica, and
NotEnoughReplicasException names the excluded witnesses.
- If the Sidecar doesn't report witnesses for a keyspace that has them, the
reader stops with a clear message rather than risk returning incomplete data.
- Keyspaces without witness replicas are unchanged.
Depends on #244 (CASSANALYTICS-197). This branch is stacked on it, so the
first commit here is #244's; only the second commit is this change.
The witnessesByDatacenter field is populated by the Sidecar
(CASSSIDECAR-444); its name is to be agreed there.
Testing: 26 new unit tests covering witness exclusion, serialization,
response validation and JSON (de)serialization. Existing replica selection,
partitioner and serialization tests pass.
--
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]