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

   ### Purpose
   
   Data-evolution compaction skips an oversized file when the file count is 
below the compaction threshold, and its normal rewrite path produces only one 
output file. This prevents resizing existing large files after lowering 
`target-file-size`.
   
   Add `data-evolution.compaction.split-large-files` (default: `false`). When 
enabled, any normal file strictly larger than twice `target-file-size` can 
trigger compaction independently of `compaction.min.file-num`, and normal 
compaction output rolls near the target size. Existing small-file merging 
remains available; the combined size of multiple versions alone does not bypass 
the minimum file count.
   
   Preserve row IDs, column sequence metadata, and logical deletions. 
Redistribute deletion vectors across output files and rewrite associated 
BLOB/VECTOR files within the new normal-file boundaries, resolving dedicated 
columns by field ID. Document the option, its additional dedicated-file I/O, 
and historical snapshot retention.
   
   ### Tests
   
   84 targeted tests passed on JDK 17, including:
   
   - Physical-size threshold boundaries, minimum-file-count behavior, and 
overflow protection.
   - Historical-file splitting with and without column updates, task 
serialization, data preservation, and repeated planning.
   - Multiple BLOB columns and a renamed VECTOR column with aligned output 
ranges and row-by-row value checks.
   - Both deletion-vector bitmap formats, deleted-row positions, row IDs, and 
existing compaction regressions.
   
   ```sh
   mvn -pl paimon-core -am \
     -DwildcardSuites=none -DfailIfNoTests=false \
     
-Dtest=DataEvolutionCompactCoordinatorTest,CompactCandidateRangeCollectorTest,DataEvolutionCompactRangePlannerTest,DataEvolutionNormalCompactTaskTest,DataEvolutionDeletionVectorTest
 \
     test
   ```
   
   Run without `fast-build`; Checkstyle, Spotless, and Maven Enforcer passed. 
The existing Byte Buddy agent was preloaded for Mockito in the local sandbox.
   


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