JingsongLi opened a new pull request, #8872:
URL: https://github.com/apache/paimon/pull/8872

   ## Purpose
   
   Add the generic compaction primitives needed to preserve RocksDB-style merge 
and non-strict TTL semantics in `LocalKvDb`.
   
   ## Changes
   
   - Add an optional merge operator for adjacent logical records written by 
flush and compaction.
   - Add an optional expiration predicate evaluated during compaction.
   - Convert expired values to tombstones during partial compaction so older 
values cannot be resurrected.
   - Drop expired values during full compaction.
   - Apply expiration after record combining, allowing a merged value to 
refresh its effective TTL.
   - Rewrite a single existing run during full compaction when TTL cleanup is 
configured.
   
   State-specific value envelopes and merge operators are intentionally left to 
the dependent state-backend PR.
   
   ## Verification
   
   - `mvn -q -pl paimon-common -Pfast-build -DwildcardSuites=none 
'-Dtest=LocalKvDbTest#testPartialCompactionDoesNotResurrectValueFilteredByExpiration+testCompactionMergesBeforeFilteringExpiredValues+testCompactionRemovesTombstones+testManualCompaction'
 test`
   - `mvn -q -pl paimon-common -Pfast-build -DwildcardSuites=none 
-Dtest=LocalKvDbTest test`
   - `mvn -q -pl paimon-common spotless:check -DskipTests`
   - `mvn -q -pl paimon-common -DskipTests compile`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to