[
https://issues.apache.org/jira/browse/CASSANDRA-17164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17483834#comment-17483834
]
Benedict Elliott Smith commented on CASSANDRA-17164:
----------------------------------------------------
bq. If we do skip proposing on a "safe" read, this is not a problem, but this
is a separate optimization that does not appear to require read promises.
This separate optimisation is made more powerful with the separate read
register, as an in progress read does not make another read unsafe, so we can
have as many "safe" parallel reads as we might like, but once there is an in
progress write then we may have only one concurrent read or write.
For example, we could safely have the following:
R1: promised=1, safe=true (at all replicas)
R2: promised=2, safe=true (at all replicas)
R3: promised=3, safe=true (at all replicas)
W4: promisedWrite=4 (at some majority of replicas)
R5: promised=5, safe=false (at some replica in the quorum)
So R1, R2 and R3 would all complete successfully in one round-trip, but R5
would require a proposal and take two round-trips.
If there were no separate register then only one safe read operation could
occur concurrently, as we would not know if any proposal might yet be made, and
as such would need to consider any concurrent reads unsafe, force a proposal,
and as such reduce our concurrency to one.
Does that make sense?
> CEP-14: Paxos Improvements
> --------------------------
>
> Key: CASSANDRA-17164
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17164
> Project: Cassandra
> Issue Type: Improvement
> Components: Consistency/Coordination, Consistency/Repair
> Reporter: Benedict Elliott Smith
> Assignee: Benedict Elliott Smith
> Priority: Normal
> Fix For: 4.1
>
>
> This ticket encompasses work for [CEP-14|
> https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-14%3A+Paxos+Improvements].
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]