[ 
https://issues.apache.org/jira/browse/HDDS-15474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chi-Hsuan Huang updated HDDS-15474:
-----------------------------------
    Status: Patch Available  (was: In Progress)

> Further speed up TestOmSnapshot by reducing config-matrix redundancy
> --------------------------------------------------------------------
>
>                 Key: HDDS-15474
>                 URL: https://issues.apache.org/jira/browse/HDDS-15474
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: test
>            Reporter: Chi-Hsuan Huang
>            Assignee: Chi-Hsuan Huang
>            Priority: Major
>              Labels: pull-request-available
>
> Follow-up to HDDS-10308. {{TestOmSnapshot}} is an abstract base with ~73 
> tests; each of the 8 concrete subclasses starts its own MiniOzoneCluster and 
> re-runs the whole suite under one config combination {{(bucketLayout, 
> disableNativeDiff, createLinkedBucket, ...)}}. The subclasses contain no test 
> methods of their own, only a constructor passing the config.
> Code analysis showed that of the three varied dimensions, only 
> {{bucketLayout}} changes observable output ({{SnapshotDiffManager}} branches 
> on {{isFileSystemOptimized()}}). {{disableNativeDiff}} changes only the diff 
> mechanism (identical reports), and {{createLinkedBucket}} changes only input 
> resolution: every snapshot operation resolves the bucket link up-front 
> (verified at all entry points: create/delete/rename snapshot, listSnapshot, 
> getSnapshotInfo, snapshotDiff/submit/cancel/listJobs, and key reads via 
> {{.snapshot/}}), before any layout-specific logic runs. The four 
> {{...WithLinkedBuckets}} subclasses, added by HDDS-11705 to verify that 
> resolution, therefore re-prove the same behaviour once per layout/native 
> setting.
> Change (PR #10432): keep one full linked run and drop the redundant copies.
> * Deleted: {{TestOmSnapshotObjectStoreWithLinkedBuckets}}, 
> {{TestOmSnapshotFsoWithNativeLibWithLinkedBuckets}}, 
> {{TestOmSnapshotWithBucketLinkingLegacy}}.
> * Kept: {{TestOmSnapshotFsoWithoutNativeLibWithLinkedBuckets}} still runs the 
> entire suite through linked buckets, so the HDDS-11705 contract stays fully 
> exercised. Native-off is chosen so this coverage also runs locally without 
> the RocksDB native lib.
> * No test method is removed; the matrix shrinks from 8 to 5 combinations, 
> saving ~3 full MiniOzoneCluster suite runs (~11 min in the snapshot CI job, 
> to be confirmed on the PR).
> * Tradeoff: OBJECT_STORE and LEGACY no longer run through linked buckets; FSO 
> carries linked coverage alone. Per-layout diff output remains covered by the 
> four plain subclasses.
> Original proposal (superseded): classify each of the ~70 tests as 
> config-sensitive vs config-independent and pin the config-independent ones to 
> a single subclass via {{assumeTrue}}. The dimensional collapse above captures 
> most of the win with a much smaller, reviewable change. Per-test pinning, and 
> dropping the never-varied constructor params ({{enableFileSystemPaths}} and 
> {{forceFullSnapshotDiff}} are {{false}} in all subclasses), remain possible 
> follow-ups if profiling justifies them.
> Relates to HDDS-10308.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to