cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5902) Dealing with hints after a topology change
Date Wed, 10 Feb 2016 00:14:18 GMT


Aleksey Yeschenko commented on CASSANDRA-5902:

Mostly what I had in mind. Pushed some commits on top [here|]:

1. Factor out {{concat(getNaturalEndpoints(keyspaceName, token), tokenMetadata.pendingEndpointsFor(token,
keyspaceName))}} into its own method instead of duplicating it further
2. Move local/remote/owner logic to the border of the system - {{HintVerbHandler::doVerb}}
- where the rest of this logic lives, leaving {{Hint}} unaware and local-only
3. Revert {{HintsDispatcher}} changes - as conversion doesn't really fit the surrounding code,
and nulls for callback/action feel a bit messy to me. Add a very trivial {{convert}} method
to {{HintsDispatchExecutor}} instead

(2) means that the tests that rely on {{Hint::apply()}} need to be rewritten (using MS sinks),
haven't handled that yet.

> Dealing with hints after a topology change
> ------------------------------------------
>                 Key: CASSANDRA-5902
>                 URL:
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Coordination
>            Reporter: Jonathan Ellis
>            Assignee: Branimir Lambov
>            Priority: Minor
>             Fix For: 3.0.x, 3.x
> Hints are stored and delivered by destination node id.  This allows them to survive IP
changes in the target, while making "scan all the hints for a given destination" an efficient
operation.  However, we do not detect and handle new node assuming responsibility for the
hinted row via bootstrap before it can be delivered.
> I think we have to take a performance hit in this case -- we need to deliver such a hint
to *all* replicas, since we don't know which is the "new" one.  This happens infrequently
enough, however -- requiring first the target node to be down to create the hint, then the
hint owner to be down long enough for the target to both recover and stream to a new node
-- that this should be okay.

This message was sent by Atlassian JIRA

View raw message