[
https://issues.apache.org/jira/browse/CASSANDRA-19989?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17888356#comment-17888356
]
Caleb Rackliffe commented on CASSANDRA-19989:
---------------------------------------------
[~Bereng] So I guess here's my question...if all we care about is writing the
bytes to a digest, and we still only have 4 bytes, can we just simplify the
patch to reverting to using {{Digest#updateWithInt()}} in all cases? The
primitive conversion from long to int won't actually be destructive here...
> Extended TTL digest generation creates false digest mismatches during upgrades
> ------------------------------------------------------------------------------
>
> Key: CASSANDRA-19989
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19989
> Project: Cassandra
> Issue Type: Bug
> Components: Consistency/Repair, Messaging/Internode
> Reporter: Caleb Rackliffe
> Assignee: Caleb Rackliffe
> Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> CASSANDRA-14227 added support for TTLs all the way up to the year 2106, and
> this is disabled in {{CASSANDRA_4}} storage compatibility mode. However, even
> with {{CASSANDRA_4}} in use, {{LivenessInfo#digest()}} writes the local
> expiration time as an 8-byte long, even when it could fit in a 4-byte int.
> During an upgrade, 5.0 nodes will generate slightly different digests and
> cause unnecessary read-repair traffic until the upgrade is complete and all
> nodes use the new digest calculation. This should be easy to fix if we just
> conditionally update the digest with int or long depending on the actual size
> of the local expiration time. (That should also avoid writing an extra 4
> bytes we don't need to the digest in many cases.)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]