[ 
https://issues.apache.org/jira/browse/CASSANDRA-10198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14863273#comment-14863273
 ] 

Aleksey Yeschenko commented on CASSANDRA-10198:
-----------------------------------------------

The patch is good as is, almost, with the exception of one issue: if hints 
dispatch were paused, transfer wouldn't work, so we need to explicitly resume 
dispatch before doing all this, just in case.

Otherwise the suggestions I pushed 
[here|https://github.com/iamaleksey/cassandra/commit/be5c42ef184dd98c4b7bf812b407ad920685aa5f]
 are mostly cosmetic, and we can commit without them:

1. moved checking for catalog emptiness to {{HintsCatalog::hasFiles}}, closer 
to the data, and to match {{HintsStore::hasFiles}}
2. renamed 'decommission' to 'transfer'
3. removed the {{hasFiles}} filter as it's redundant - if there are no files to 
stream, {{DispatchHintsTask::run}} will simply be a NOOP
4. for consistency with {{HintsDispatcher}} itself, only retry once on failure 
(after a fixed delay of 10 seconds, here)



> 3.0 hints should be streamed on decomission
> -------------------------------------------
>
>                 Key: CASSANDRA-10198
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10198
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Aleksey Yeschenko
>            Assignee: Marcus Eriksson
>             Fix For: 3.0.0 rc1
>
>
> CASSANDRA-6230 added all the necessary pieces in the initial release, but 
> streaming itself didn't make it in time.
> Now that hints are stored in flat files, we cannot just stream hints 
> sstables. Instead we need to handoff hints files.
> Essentially we need to rewrite {{StorageService::streamHints}} to be 
> CASSANDRA-6230 aware.
> {{HintMessage}} and {{HintVerbHandler}} can already handle hints targeted for 
> other nodes (see javadoc for both, it's documented reasonably).
> {{HintsDispatcher}} also takes hostId as an argument, and can stream any 
> hints to any nodes.
> The building blocks are all there - we just need 
> {{StorageService::streamHints}} to pick the optimal candidate for each file 
> and use {{HintsDispatcher}} to stream the files.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to