chihsuan opened a new pull request, #10432: URL: https://github.com/apache/ozone/pull/10432
## What changes were proposed in this pull request? **Problem.** `TestOmSnapshot` is one of the slower integration suites because it runs its full ~73-test suite many times over. It is an abstract base; each concrete subclass starts its own `MiniOzoneCluster` and re-runs the whole suite under one config combination `(bucketLayout, disableNativeDiff, createLinkedBucket, ...)`. The subclasses contain **no test logic of their own**, just a constructor calling `super(...)` with a config. Today there are 8 such combinations, and 4 of them are `*WithLinkedBuckets` variants that re-run the entire suite through linked (symlink) buckets. Those linked variants were added by HDDS-11705 (#7434) to verify that snapshot operations on a linked bucket act on the underlying source bucket. That fix works by resolving the bucket link up-front, before any operation logic runs. We verified this holds for every snapshot operation entry point: | Operation | Resolution site | | --- | --- | | createSnapshot | `OMSnapshotCreateRequest.preExecute()` | | deleteSnapshot | `OMSnapshotDeleteRequest.preExecute()` | | renameSnapshot | `OMSnapshotRenameRequest.preExecute()` | | listSnapshot | `OzoneManager.listSnapshot()` | | getSnapshotInfo | `OzoneManager.getSnapshotInfo()` | | snapshotDiff / submitSnapshotDiff | `OzoneManager.snapshotDiff()` / `submitSnapshotDiff()` | | cancelSnapshotDiff | `OzoneManager.cancelSnapshotDiff()` | | listSnapshotDiffJobs | `OzoneManager.listSnapshotDiffJobs()` | | read key via `.snapshot/<name>` | `OmSnapshotManager.getActiveFsMetadataOrSnapshot()` | Because link resolution is a single, up-front, operation-level step that happens before any layout-specific (`isFileSystemOptimized()`) branching, running the whole suite through links for *every* layout and native-lib setting re-proves the same resolution behaviour repeatedly. It produces identical diff output to the non-linked runs. **Change.** Keep one full linked run and drop the redundant copies. Delete three linked subclasses: - `TestOmSnapshotObjectStoreWithLinkedBuckets` - `TestOmSnapshotFsoWithNativeLibWithLinkedBuckets` - `TestOmSnapshotWithBucketLinkingLegacy` Keep `TestOmSnapshotFsoWithoutNativeLibWithLinkedBuckets` (FSO, native-off, linked) as the surviving full linked run. It still executes the entire suite through linked buckets, so every snapshot operation is still exercised against a link. Native-off is chosen deliberately so this coverage runs both on CI and locally (native-on classes self-skip when the RocksDB native lib is absent). The four plain classes (`FsoWithNativeLib`, `FsoWithoutNativeLib`, `ObjectStore`, `WithoutBucketLinkingLegacy`) are unchanged. This removes no test method. It reduces the matrix from 8 to 5 config combinations, saving roughly 3 full `MiniOzoneCluster` runs. **Coverage.** This is safe because link resolution is layout- and native-independent: it happens once, up-front, before any layout-specific (`isFileSystemOptimized()`) logic runs, so a linked run exercises exactly the same downstream code as a plain run plus the resolution step. The surviving `TestOmSnapshotFsoWithoutNativeLibWithLinkedBuckets` still runs the entire suite through linked buckets, so the HDDS-11705 contract (every snapshot operation resolves the link) remains fully exercised, and per-layout diff output remains covered by the four plain classes. **Tradeoff:** the OBJECT_STORE and LEGACY suites no longer run through linked buckets; FSO carries the linked coverage alone. If broader linked coverage is preferred, keeping one linked class per layout is a simple alternative. Not touched: the `TestOmSnapshotFileSystem*WithLinkedBuckets` classes (a separate base) are left as-is. This is the dimensional-collapse follow-up to HDDS-10308. It is independent of that change (disjoint files) and can merge in any order. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-15474 ## How was this patch tested? Test-only change (deletes three config-wrapper test classes; adds nothing). - `hadoop-ozone/integration-test` compiles cleanly after the deletions (no dangling references; verified no `.java`/`.xml`/`.yaml`/`.yml`/`.txt` references to the deleted classes exist). - The surviving linked class `TestOmSnapshotFsoWithoutNativeLibWithLinkedBuckets` passes locally after the change: `Tests run: 72, Failures: 0, Errors: 0, Skipped: 0` (438s), the same test count as before the deletions, confirming linked-bucket coverage is intact. - CI exercises the full surviving matrix and will show the snapshot job wall-clock drop (expected ~11 min from removing three full-suite re-runs). -- 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]
