smengcl opened a new pull request, #10772: URL: https://github.com/apache/ozone/pull/10772
Generated-by: Codex (GPT-5.6 Sol) ## What changes were proposed in this pull request? Incremental snapshot defragmentation directly ingested a candidate SST when a table had exactly one delta file and the snapshot version was greater than zero. These candidate files are live RocksDB SSTs selected at file granularity, not external SSTs containing an exact logical bucket delta. A DB-generated SST is rejected by external-file ingestion, while a previously ingested live SST may be accepted but apply the wrong value. Direct ingestion also bypasses bucket-prefix filtering, snapshot value comparison, and tombstone generation. This change removes the single-file shortcut. All candidate SST sets now pass through `spillTableDiffIntoSstFile`, which constructs a fresh external SST containing the logical differences between the current and previous snapshots. The existing incremental-defragmentation test is updated to expect rewriting regardless of snapshot version or candidate-file count. A new real-RocksDB regression test covers both DB-generated SSTs and SSTs previously ingested into a live database. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-15860 ## How was this patch tested? Before the production change, the new regression reproduced both failure modes: - A DB-generated SST failed with `External file version not found`. - A previously ingested SST applied its stored value instead of the current snapshot value. After the change: - `TestSnapshotDefragService`: 23 tests passed. - `./hadoop-ozone/dev-support/checks/checkstyle.sh`: passed across all 59 modules. - The `ozone-manager` module and its dependencies compiled successfully. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
