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

Brandon Williams commented on CASSANDRA-17808:
----------------------------------------------

For clarity we should probably make a new ticket for  the backports.

> Optionally avoid hint transfer during decommission
> --------------------------------------------------
>
>                 Key: CASSANDRA-17808
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17808
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Consistency/Hints
>            Reporter: Caleb Rackliffe
>            Assignee: Caleb Rackliffe
>            Priority: Normal
>             Fix For: 5.0-alpha1, 5.0
>
>         Attachments: cassandra-17808_4.0.patch.txt, 
> cassandra-17808_4.1.patch.txt
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> Both because they aren’t strictly necessary to maintain consistency, and 
> because throttling induced by their rate-limiter (see 
> {{hinted_handoff_throttle}}) may stall progress, transferring hints during 
> decommission (specifically unbootstrap) rather than just pausing, disabling, 
> and truncating them probably doesn’t make sense. The only other concern would 
> be the BatchLog, which nominally depends on hint delivery to maintain its 
> "guarantees". However, during BatchLog replay on unbootstrap, 
> {{ReplayingBatch}} ignores batches older the gcgs anyway.
> Here's a proposal from [~aleksey] that might strike a reasonable balance:
> 1.) We continue to transfer hints by default during decommission, but at a 
> higher rate. We could, for instance, stop having {{DispatchHintsTask}} divide 
> its effective rate by the number of nodes in the cluster.
> {noformat}
> int nodesCount = Math.max(1, 
> StorageService.instance.getTokenMetadata().getAllEndpoints().size() - 1);
> double throttleInBytes = DatabaseDescriptor.getHintedHandoffThrottleInKiB() * 
> 1024.0 / nodesCount;
> this.rateLimiter = RateLimiter.create(throttleInBytes == 0 ? Double.MAX_VALUE 
> : throttleInBytes);
> {noformat}
> 2.) We provide an option to simply avoid transferring hints during 
> unbootstrap. Even this would only take the BatchLog from "best effort" to 
> "slightly less effort" ;)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to