[ https://issues.apache.org/jira/browse/CASSANDRA-13645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16067684#comment-16067684 ]
Jeff Jirsa commented on CASSANDRA-13645: ---------------------------------------- I like {{CL.HALF}} and have half round up, which gives us the desired behavior for even #s of replicas, and also makes it so you can take the extra replica on either read or write (write half / read quorum, or write quorum / read half). Short of that, what if we just make finally CL pluggable, and let users define their own, then we don't have to bikeshed? > Optimize the number of replicas required in Quorum read/write > ------------------------------------------------------------- > > Key: CASSANDRA-13645 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13645 > Project: Cassandra > Issue Type: Improvement > Components: Coordination > Reporter: Dikang Gu > Assignee: Dikang Gu > Fix For: 4.x > > > Currently, for C* read/write requests with quorum consistent level, number of > replicas required for quorum write is W=N/2+1, and number of replicas > required for quorum read is R=N/2+1 as well. > It works fine in odd number of replicas case, which R + W = N + 1, but in > even number of replicas case, like RF=4, 6, 8, the R+W = N + 2, which means > we are having two overlapping nodes in read/write requests, which is not > necessary. It can not provide strong consistency, but will hurts P99 read > latency a lot (2X in our production cluster). > In a lot of other database, like Amazon Aurora, they use W = N/2 + 1 and R = > N/2 for quorum requests, which will provide enough strong consistency, but > talk to one less replica in read path. "We use a quorum model with 6 votes (V > = 6), a write quorum of 4/6 (Vw = 4), and a read quorum of 3/6 (Vr = 3)." > I propose we do the same optimization, change read quorum to talk to N/2 > replicas, which should reduce the read latency for quorum read in general. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org