[
https://issues.apache.org/jira/browse/CASSANDRA-1988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis resolved CASSANDRA-1988.
---------------------------------------
Resolution: Won't Fix
Fix Version/s: (was: 1.0)
> Prefer to throw Unavailable rather than Timeout
> -----------------------------------------------
>
> Key: CASSANDRA-1988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1988
> Project: Cassandra
> Issue Type: Improvement
> Components: API
> Reporter: Stu Hood
>
> When a node is unreachable, but is not yet being reported dead by gossip,
> messages are enqueued in the messaging service to be sent when the node
> becomes available again (on the assumption that the connection dropped
> temporarily).
> Higher up in the client layer, before sending messages to other nodes, we
> check that they are alive according to gossip, and fail fast with
> UnavailableException if they are not (CASSANDRA-1803). If we send messages to
> nodes that are not yet being reported dead, the messages sit in queue, and
> time out rather than being sent: this results in the client request failing
> with a TimeoutException.
> If we differentiate between messages that were never sent (aka, are still
> queued in the MessagingService at the end of the timeout), and messages that
> were sent but didn't get a response, we can properly throw
> UnavailableException in the former case.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira