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

Siyao Meng reassigned HDDS-17702:
---------------------------------

    Assignee: Siyao Meng

> Exercise ordered snapshot diff metadata with legacy clients in xcompat test
> ---------------------------------------------------------------------------
>
>                 Key: HDDS-17702
>                 URL: https://issues.apache.org/jira/browse/HDDS-17702
>             Project: Apache Ozone
>          Issue Type: Improvement
>          Components: Snapshot, test
>            Reporter: Siyao Meng
>            Assignee: Siyao Meng
>            Priority: Major
>
> The xcompat test checks that a legacy client (older than 2.2.0) does not see 
> the dependency metadata of a snapshot diff report:
> {code}
>     ${output} =    Wait For Snapshot diff  ${FSO_BUCKET}  ${SNAPSHOT1}  
> ${SNAPSHOT2}  ${SNAPSHOT_KEY1}
>     # Legacy Snapshot Diff Report Omits Dependency Metadata
>     Should Not Contain    ${output}    Report is dependency
> {code}
> This assertion cannot fail currently:
> * The "Report is dependency ordered/unordered." reason is set only by the 
> optimized snapshot diff path, which is disabled by default 
> ({{ozone.om.snapshot.diff.optimized.enabled=false}}) and not enabled in 
> xcompat {{docker-config}}.
> * Enabling it alone is not enough. Without the {{ozone_rocksdb_tools}} native 
> library, OM logs {{Falling back to legacy diff}} unless full diff is forced.
> * The legacy client only reads the unordered {{snapshot-1}} to {{snapshot-2}} 
> diff, never the {{--ordered}} {{snapshot-1}} to {{snapshot-3}} diff written 
> by 2.3.0 clients.
> Proposed change:
> # Enable the optimized snapshot diff in {{compose/xcompat/docker-config}} 
> (old OMs ignore the keys):
> {code}
> OZONE-SITE.XML_ozone.om.snapshot.diff.optimized.enabled=true
> OZONE-SITE.XML_ozone.om.snapshot.force.full.diff=true
> {code}
> # Let the legacy client read the {{--ordered}} diff in 
> {{compatibility/read.robot}}:
> {code}
> Legacy Client Can Read --ordered Snapshot Diff
>     Pass Execution If    '${CLUSTER_VERSION}' < '${SNAPSHOT_VERSION}'    
> Cluster does not support snapshots
>     Pass Execution If    '${CLIENT_VERSION}' < '${SNAPSHOT_VERSION}'    
> Client does not support snapshots
>     Pass Execution If    '${CLIENT_VERSION}' >= 
> '${SNAPSHOT_DIFF_SUBMIT_VERSION}'    Tested elsewhere with --get-report
>     Pass Execution If    '${DATA_VERSION}' < 
> '${SNAPSHOT_DIFF_ORDERED_VERSION}'    Skipped write test case
>     ${output} =    Wait For Snapshot diff  ${FSO_BUCKET}  ${SNAPSHOT1}  
> ${SNAPSHOT3}  ${SNAPSHOT_KEY1}  ${SNAPSHOT_KEY2}
>     Should Not Contain    ${output}    Report is dependency
> {code}
> Tried locally with xcompat (old clients 1.4.1 and 2.1.2 on the current 
> cluster, and old clusters 1.4.1 and 2.1.2): all tests passed. With both keys 
> set, the 2.3.0 client's {{--get-report}} shows "Report is dependency 
> ordered." for {{snapshot-1}} to {{snapshot-3}} and "Report is dependency 
> unordered." for {{snapshot-1}} to {{snapshot-2}}, while 1.4.1 and 2.1.2 
> clients reading the same diffs do not.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

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

Reply via email to