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

Jonathan Ellis updated CASSANDRA-1905:
--------------------------------------

    Attachment: 1905.txt

The idea is simply, "when a message expires from our Map without a response, 
count it at the maximum latency."  ExpiringMap is thus extended with an 
optional postExpireHook Function.

In MessagingService we add a "targets" multimap (since a message can be sent to 
multiple recipients), and update that with the destinations for any message 
with a callback.  ResponseVerbHandler removes each destination from "targets" 
when it gets a reply.  We also combine the former "callbackMap_" and 
"taskCompletionMap_" into a single "callbacks" object to avoid redundancy.  
IMessageCallback is introduced to mean "IASyncCallback or IAsyncResult."

Also, for consistency, removing objects from "callbacks" is defined to be the 
responsibility of the IMessageCallback, so I've moved that from the AsyncResult 
section into AR, rather than RVH.  It would be nice to do it in RVH but there 
is not enough information there, in the case of quorum reads, to know when it's 
safe to do the remove (RVH is per-message based, and quorum reads by definition 
span multiple messages).

> count timeouts towards dynamicsnitch latencies
> ----------------------------------------------
>
>                 Key: CASSANDRA-1905
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1905
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.6.6
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>             Fix For: 0.6.9, 0.7.1
>
>         Attachments: 1905.txt
>
>
> receiveTiming is only called by ResponseVerbHandler; we need to add timing 
> information for timed-out requests as well.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to