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

Carl Yeksigian commented on CASSANDRA-9602:
-------------------------------------------

The [2.2 
docs|http://docs.datastax.com/en/cassandra/2.2/cassandra/dml/dmlConfigConsistency.html?scroll=dmlConfigConsistency__dml-config-read-consistency]
 state that {{EACH_QUORUM}} is not supported for reads; the writes section 
still references it.
    
Caching doesn't make sense for dcEndpoints; the endpoints are going to be 
different for each token that we get and it has to include only the live 
tokens, so there isn't much benefit to caching these values.
    
For selecting the endpoints, this code follows the same way we do things for 
all of our other consistency levels, so that behavior is the same as we'd 
expect from, for example, running a {{LOCAL_QUORUM}} in each DC.
    
I have added a 
[dtest|https://github.com/carlyeks/cassandra-dtest/tree/each_quorum_read] to 
the consistency_test.py.


> EACH_QUORUM READ support needed
> -------------------------------
>
>                 Key: CASSANDRA-9602
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9602
>             Project: Cassandra
>          Issue Type: Sub-task
>            Reporter: Scott Guminy
>            Assignee: Carl Yeksigian
>              Labels: client-impacting, doc-impacting
>             Fix For: 3.x
>
>
> EACH_QUORUM consistency for READ should be added.
> This bug https://issues.apache.org/jira/browse/CASSANDRA-3272 says it is not 
> needed ever, however I have a use case where I need it.  I think the decision 
> made was incorrect. Here's why...
>  
>  My application has two key pieces:
>  
>  # *End user actions* which add/modify data in the system.  End users 
> typically access the application from only one Data Center and only see their 
> own data
> # *Scheduled business logic tasks* which run from any node in any data 
> center.  These tasks process data added by the end users in an asynchronous 
> way
>  
>  *End user actions must have the highest degree of availability.*  Users must 
> always be able to add data to the system.  The data will be processed later.  
> To support this, end user actions will use *LOCAL_QUORUM Read and Write 
> Consistency*.
>  
>  Scheduled tasks don't need to have a high degree of availability but MUST 
> operate on the most up to date data.  *The tasks will run with EACH_QUORUM* 
> to ensure that no matter how many data centers we have, we always READ the 
> latest data.  This approach allows us some amount of fault tolerance. 
>  
>  The problem is that EACH_QUORUM is not a valid READ consistency level.  This 
> mean I have no alternative but to use ALL.  ALL will work, but is not the 
> best since it offers support for ZERO failures.  I would prefer EACH_QUORUM 
> since it can support some failures in each data center.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to