You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Scott Guminy (JIRA)" <ji...@apache.org> on 2015/06/16 14:24:00 UTC
[jira] [Updated] (CASSANDRA-9602) EACH_QUORUM READ support needed
[ https://issues.apache.org/jira/browse/CASSANDRA-9602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott Guminy updated CASSANDRA-9602:
------------------------------------
Description:
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.
was:
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 in this defect is 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.
> EACH_QUORUM READ support needed
> -------------------------------
>
> Key: CASSANDRA-9602
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9602
> Project: Cassandra
> Issue Type: Bug
> Reporter: Scott Guminy
>
> 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)