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]