[ https://issues.apache.org/jira/browse/CASSANDRA-4705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13565048#comment-13565048 ]
Jonathan Ellis commented on CASSANDRA-4705: ------------------------------------------- Thanks, that makes it a lot easier to follow the refactor. v6 pushed to https://github.com/jbellis/cassandra/branches/4705-v6 with a bunch of changes. Biggest is, simplified SpeculativeReadExecutor.speculate under the reasoning that if an earlier request hasn't been serviced yet on a given replica, sending a second request to the same one probably won't help. Also, realized sorting the speculation wasn't necessary after all. LMKWYT. > 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