cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stu Hood (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-2540) Data reads by default
Date Fri, 22 Apr 2011 05:57:05 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-2540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Stu Hood updated CASSANDRA-2540:
--------------------------------

    Description: 
The intention of digest vs data reads is to save bandwidth in the read path at the cost of
latency, but I expect that this has been a premature optimization.

* Data requested by a read will often be within an order of magnitude of the digest size,
and a failed digest means extra roundtrips, more bandwidth
* The [digest reads but not your data read|https://issues.apache.org/jira/browse/CASSANDRA-2282?focusedCommentId=13004656&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13004656]
problem means failing QUORUM reads because a single node is unavailable, and would require
eagerly re-requesting at some fraction of your timeout
* Saving bandwidth in cross datacenter usecases comes at huge cost to latency, since both
constraints increase proportionally enough that the tradeoff is not clear


Some options:
# Add an option to use digest reads
# Remove digest reads entirely (and/or punt and make them a runtime optimization based on
data size in the future)
# Continue to use digest reads, but send them to {{N - R}} nodes for (somewhat) more predicatable
behavior with QUORUM

\\
The outcome of data-reads-by-default should be significantly improved latency, with a moderate
increase in bandwidth usage for large reads.

  was:
The intention of digest vs data reads is to save bandwidth in the read path at the cost of
latency, but I expect that this has been a premature optimization.

* Data requested by a read will often be within an order of magnitude of the digest size,
and a failed digest means extra roundtrips, more bandwidth
* The [digest reads but not your data read|https://issues.apache.org/jira/browse/CASSANDRA-2282?focusedCommentId=13004656&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13004656]
problem means failing QUORUM reads because a single node is unavailable, and would require
eagerly re-requesting at some fraction of your timeout
* Saving bandwidth in cross datacenter usecases comes at huge cost to latency, since both
constraints increase proportionally enough that the tradeoff is not clear


Some options:
# Add an option to use digest reads
# Remove digest reads entirely (and/or punt and make them a runtime optimization based on
data size in the future)

\\
The outcome of data-reads-by-default should be significantly improved latency, with a moderate
increase in bandwidth usage for large reads.


> Data reads by default
> ---------------------
>
>                 Key: CASSANDRA-2540
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2540
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>             Fix For: 0.8.0
>
>
> The intention of digest vs data reads is to save bandwidth in the read path at the cost
of latency, but I expect that this has been a premature optimization.
> * Data requested by a read will often be within an order of magnitude of the digest size,
and a failed digest means extra roundtrips, more bandwidth
> * The [digest reads but not your data read|https://issues.apache.org/jira/browse/CASSANDRA-2282?focusedCommentId=13004656&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13004656]
problem means failing QUORUM reads because a single node is unavailable, and would require
eagerly re-requesting at some fraction of your timeout
> * Saving bandwidth in cross datacenter usecases comes at huge cost to latency, since
both constraints increase proportionally enough that the tradeoff is not clear
> Some options:
> # Add an option to use digest reads
> # Remove digest reads entirely (and/or punt and make them a runtime optimization based
on data size in the future)
> # Continue to use digest reads, but send them to {{N - R}} nodes for (somewhat) more
predicatable behavior with QUORUM
> \\
> The outcome of data-reads-by-default should be significantly improved latency, with a
moderate increase in bandwidth usage for large reads.

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

Mime
View raw message