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]
