Hi all,

The CEP is available here: 
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=353601959

We would like to propose CEP-46: Finish Transient Replication/Witnesses for 
adoption by the community. CEP-46 would rename transient replication to 
witnesses and leverage mutation tracking to implement witnesses as CEP-45 
Mutation Tracking based Log Replicas as a replacement for incremental repair 
based witnesses.

For those not familiar with transient replication it would have the keyspace 
replication settings declare some replicas as transient and when incremental 
repair runs the transient replicas would delete data instead of moving it into 
the repaired set. 

With log replicas nodes only  materialize mutations in their local LSM for 
ranges where they are full replicas and not witnesses. For witness ranges a 
node will write mutations to their local mutation tracking log and participate 
in background and read time reconciliation. This saves the compaction overhead 
of IR based witnesses which have to materialize and perform compaction on all 
mutations even those being applied to witness ranges. 

This would address one of the biggest issues with witnesses which is the lack 
of monotonic reads. Implementation complexity wise this would actually delete 
code compared to what would be required to complete IR based witnesses because 
most of the heavy lifting is already done by mutation tracking.

Log replicas also makes it much more practical to realize the cost savings of 
witnesses because log replicas have easier to characterize resource consumption 
requirements (write rate * recovery/reconfiguration time) and target a 10x 
improvement in write throughput.  This makes knowing how much capacity can be 
omitted safer and easier.

Thanks,
Ariel

Reply via email to