You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Mark Guzman (JIRA)" <ji...@apache.org> on 2011/09/10 18:02:08 UTC

[jira] [Issue Comment Edited] (CASSANDRA-3172) Add CL.ANY_QUORUM to support quorum requests with cross datacenter failover

    [ https://issues.apache.org/jira/browse/CASSANDRA-3172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13102068#comment-13102068 ] 

Mark Guzman edited comment on CASSANDRA-3172 at 9/10/11 4:01 PM:
-----------------------------------------------------------------

CL.TWO doesn't give you consistency depending on the RF right? This is pushing an operation I would be doing on the client up to the server. If I receive an UnavailableException, I would retry with another datacenter. My intent is to move that logic into the coordinator where we can remove the round trip for the UnavailableException and make smarter choices about what dc to try next.

Given datacenters A, B and C with A being my local DC. I'd want to write/read from DC A if possible, if we don't have enough nodes to form a quorum within that DC I'd want to bounce to the next DC always favoring a quorum based on RF instead of falling back to CL.TWO or CL.ONE which don't offer similar consistency behavior.

Versus LOCAL_QUORUM and EACH_QUORUM, local will fail if we can't meet the quorum requirements in the dc rendering an UnavailableException. Each casts a wider net and fails if any dc doesn't meet the quorum requirements. So in this specific case both would fail because the local quorum would be unavailable.

      was (Author: segy):
    CL.TWO doesn't give you consistency depending on the RF right? This is pushing an operation I would be doing on the client up to the server. If I receive an UnavailableException, I would retry with another datacenter. My intent is to move that logic into the coordinator where we can remove the round trip for the UnavailableException and make smarter choices about what dc to try next.

Given datacenters A, B and C with A being my local DC. I'd want to write/read from DC A if possible, if we don't have enough nodes to form a quorum within that DC I'd want to bounce to the next DC always favoring a quorum based on RF instead of falling back to CL.TWO or CL.ONE which don't offer similar consistency behavior.
  
> Add CL.ANY_QUORUM to support quorum requests with cross datacenter failover
> ---------------------------------------------------------------------------
>
>                 Key: CASSANDRA-3172
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3172
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API, Core
>            Reporter: Mark Guzman
>            Priority: Minor
>
> Currently we provide CL.LOCAL_QUORUM and CL.EACH_QUORUM. CL.ANY_QUORUM would operate like CL.LOCAL_QUORUM if a local quorum is possible, if it is not the coordinator would use its knowledge to select the "fastest/closest" node in another datacenter to attempt another LOCAL_QUORUM in. This would allow for simple reliable cross datacenter failover without putting the intelligence in the client. The client is intrinsically at a disadvantage since it doesn't have a current full picture of the rings.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira