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

Stefan Miklosovic commented on CASSANDRA-14309:
-----------------------------------------------

I have incorporated the above-mentioned logic into the same branch.

PR: https://github.com/instaclustr/cassandra/tree/CASSANDRA-14309

build: 
[https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/1086]

There is one not-so-obvious modification of the code I did upon Mick's review. 
The problem was that the map of the earliest hints for hosts in HintBuffer was 
growing without any boundary because this buffer (buffers) is/are reused but we 
have never removed anything from there.

I am removing these entries after HintStore is closed upon flushing. I would 
advice a reader to dig deeper in the logic of hints to understand the problem 
presented and its solution I provide.

> Make hint window persistent across restarts
> -------------------------------------------
>
>                 Key: CASSANDRA-14309
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14309
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Consistency/Hints
>            Reporter: Kurt Greaves
>            Assignee: Stefan Miklosovic
>            Priority: Low
>             Fix For: 4.1
>
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> The current hint system stores a window of hints as defined by 
> {{max_hint_window_in_ms}}, however this window is not persistent across 
> restarts.
> Examples (cluster with RF=3 and 3 nodes, A, B, and C):
>  # A goes down
>  # X ms of hints are stored for A on B and C
>  # A is restarted
>  # A goes down again without hints replaying from B and C
>  # B and C will store up to another {{max_hint_window_in_ms}} of hints for A
>  
>  # A goes down
>  # X ms of hints are stored for A on B and C
>  # B is restarted
>  # B will store up to another {{max_hint_window_in_ms}} of hints for A
>  
> Note that in both these scenarios they can continue forever. If A or B keeps 
> getting restarted hints will continue to pile up.
>  
> Idea of this ticket is to stop this behaviour from happening and only ever 
> store up to {{max_hint_window_in_ms}} of hints for a particular node.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to