You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vijay (JIRA)" <ji...@apache.org> on 2013/01/21 02:52:13 UTC

[jira] [Updated] (CASSANDRA-4705) Speculative execution for Reads

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

Vijay updated CASSANDRA-4705:
-----------------------------

    Attachment: 0002-Add-Speculative-execution-for-Row-Reads.patch
                0001-Refactor-to-introduce-AbstractReadExecutor.patch

Hi Jonathan, Sorry I missed the mail notification on the comment hence the delay.
I have also pushed the updates to https://github.com/Vijay2win/cassandra/tree/4705-v5

{quote}
Should split latency tracking into, at least, single-row reads vs index/seq scans.
{quote}
This patch doesn't cover the index scans for now, but i will create a ticket to include those (Reason being it needs more refactor to track the info), hope thats fine.

{quote}
Making the extra call to isSignaled in RC.get is probably a pessimization since it is also synchronized
{quote}
Honestly i am not sure why isSignaled is synchronized and set is not volatile, i fixed it, hope thats fine.

Done the rest as suggested.

Thanks!
                
> Speculative execution for Reads
> -------------------------------
>
>                 Key: CASSANDRA-4705
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4705
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Vijay
>            Assignee: Vijay
>             Fix For: 2.0
>
>         Attachments: 0001-CASSANDRA-4705.patch, 0001-CASSANDRA-4705-v2.patch, 0001-CASSANDRA-4705-v3.patch, 0001-Refactor-to-introduce-AbstractReadExecutor.patch, 0002-Add-Speculative-execution-for-Row-Reads.patch
>
>
> When read_repair is not 1.0, we send the request to one node for some of the requests. When a node goes down or when a node is too busy the client has to wait for the timeout before it can retry. 
> It would be nice to watch for latency and execute an additional request to a different node, if the response is not received within average/99% of the response times recorded in the past.
> CASSANDRA-2540 might be able to solve the variance when read_repair is set to 1.0
> 1) May be we need to use metrics-core to record various Percentiles
> 2) Modify ReadCallback.get to execute additional request speculatively.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira