Caleb Rackliffe created CASSANDRA-19989:
-------------------------------------------

             Summary: 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


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]

Reply via email to