[
https://issues.apache.org/jira/browse/CASSANDRA-14406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16589026#comment-16589026
]
Benedict commented on CASSANDRA-14406:
--------------------------------------
My review for this is in progress alongside all of the other transient
replication reviews, so I will report here as I find noteworthy things to
discuss.
First and most importantly, I'm concerned about pending ranges and transient
replicas. It's not clear to me that ignoring transient replicas for pending
ranges is acceptable. I'm not sufficiently clued up on the order of ceremony
for range movements, but it seems likely that when a transient range is moved,
there will be a period of time where both transient replicas would need to
receive any write intended for the logical transient replica. If only the
current one receives it, then after the movement takes effect a read quorum may
return a bad response.
StorageProxy.mutate looks to have had a bug around maybeTryAdditionalReplicas
and counters when a node was marked down. In this case it would have tried to
perform a regular write to the down nodes. [I have pushed a
fix|https://github.com/belliottsmith/cassandra/commit/9e74e1dd1f2f69f0c0117c4f94f79da9d5b6fe8f].
StorageProxy.mutate also unnecessarily allocated a HashMap, that it only used
for pair-wise iteration. In fact, by requiring a list to be furnished to the
method, we could simply collect a new list of the response handlers, and
iterate them both by index. Since all callers already did construct a list,
this just involved propagating some type parameter changes. [I have pushed a
refactor to the
method|https://github.com/belliottsmith/cassandra/commit/4860cc0be054bfedf31220a2c87ff90fa3f16648]
> Transient Replication: Implement cheap quorum write optimizations
> -----------------------------------------------------------------
>
> Key: CASSANDRA-14406
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14406
> Project: Cassandra
> Issue Type: Sub-task
> Components: Coordination
> Reporter: Ariel Weisberg
> Assignee: Blake Eggleston
> Priority: Major
>
> Writes should never be sent to transient replicas unless necessary to satisfy
> the requested consistency level. Such as RF not being sufficient for strong
> consistency or not enough full replicas marked as alive.
> If a write doesn't receive sufficient responses in time additional replicas
> should be sent the write similar to Rapid Read Protection.
> Hints should never be written for a transient replica.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]