Skip to content
This repository has been archived by the owner on May 3, 2024. It is now read-only.

CORTX-33917: Enable versioned CAS ops without DTM0 #2075

Merged
merged 20 commits into from
Sep 16, 2022

Conversation

tshaffe1
Copy link

Problem Statement

This PR enables versioned CAS operations for DIX without requiring DTM. This is needed to select the most recent version when working with read-write quorums.

Design

Currently, several factors control whether versioned CAS operations are used. In particular,

  • the COF_VERSIONED flag
  • the presence of a valid transaction descriptor

This means that currently, versioned CAS only works with DTM in place. In order to allow versioned operations regardless of DTM status, this PR relaxes the second requirement. If COF_VERSIONED is passed but no transaction is set, the current time is automatically used. This should probably be a settable parameter, but the version info is passed to CAS as part of the transaction so the interface is a bit awkward when the transaction is null. Rather than checking for a full transaction descriptor (ID, participants, etc.), this PR changes CAS to only require a timestamp to enable versioned operations. I updated the unit tests to check that a zero version gets overwritten.

The other major change is adding the COF_VERSIONED flag to DIX operations. This has some implications for semantics (e.g. delete of a non-existent record returns 0 rather than ENOENT). It also requires put to have COF_OVERWRITE. I updated the unit tests for these changes. It might be necessary to check with clients (RGW) to ensure that this won't be a problem. Also note that without DTM and log pruner versions may accumulate (delete adds a tombstone rather than deleting records), so this PR could increase storage usage.

I wasn't certain about how versioning should interact with e.g. layouts, so detailed review is appreciated. Also need feedback to make sure this won't conflict with plans for DTM0.

Coding

Checklist for Author

  • Coding conventions are followed and code is consistent

Testing

Checklist for Author

  • Unit and System Tests are added
  • Test Cases cover Happy Path, Non-Happy Path and Scalability
  • Testing was performed with RPM

Impact Analysis

Checklist for Author/Reviewer/GateKeeper

  • Interface change (if any) are documented
  • Side effects on other features (deployment/upgrade)
  • Dependencies on other component(s)

Review Checklist

Checklist for Author

  • JIRA number/GitHub Issue added to PR
  • PR is self reviewed
  • Jira and state/status is updated and JIRA is updated with PR link
  • Check if the description is clear and explained

Documentation

Checklist for Author

  • Changes done to WIKI / Confluence page / Quick Start Guide

Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
@rkothiya
Copy link
Contributor

Jenkins CI Result : Motr#1638

Motr Test Summary

Test ResultCountInfo
❌Failed2
📁

04motr-single-node/49motr-rpc-cancel
01motr-single-node/00userspace-tests

🏁Skipped32
📁

01motr-single-node/28sys-kvs
01motr-single-node/35m0singlenode
01motr-single-node/04initscripts
01motr-single-node/37protocol
02motr-single-node/51kem
02motr-single-node/20rpc-session-cancel
02motr-single-node/10pver-assign
02motr-single-node/21fsync-single-node
02motr-single-node/13dgmode-io
02motr-single-node/14poolmach
02motr-single-node/11m0t1fs
02motr-single-node/26motr-user-kernel-tests
02motr-single-node/08spiel
03motr-single-node/06conf
03motr-single-node/36spare-reservation
04motr-single-node/34sns-repair-1n-1f
04motr-single-node/08spiel-sns-repair-quiesce
04motr-single-node/28sys-kvs-kernel
04motr-single-node/11m0t1fs-rconfc-fail
04motr-single-node/08spiel-sns-repair
04motr-single-node/19sns-repair-abort
04motr-single-node/22sns-repair-ios-fail
05motr-single-node/18sns-repair-quiesce
05motr-single-node/12fwait
05motr-single-node/16sns-repair-multi
05motr-single-node/07mount-fail
05motr-single-node/15sns-repair-single
05motr-single-node/23sns-abort-quiesce
05motr-single-node/17sns-repair-concurrent-io
05motr-single-node/07mount
05motr-single-node/07mount-multiple
05motr-single-node/12fsync

✔️Passed41
📁

01motr-single-node/43m0crate
01motr-single-node/05confgen
01motr-single-node/06hagen
01motr-single-node/52motr-singlenode-sanity
01motr-single-node/01net
01motr-single-node/01kernel-tests
01motr-single-node/03console
01motr-single-node/02rpcping
02motr-single-node/07m0d-fatal
02motr-single-node/67fdmi-plugin-multi-filters
02motr-single-node/53clusterusage-alert
02motr-single-node/41motr-conf-update
03motr-single-node/61sns-repair-motr-1n-1f
03motr-single-node/72spiel-sns-motr-repair-quiesce
03motr-single-node/08spiel-multi-confd
03motr-single-node/69sns-repair-motr-quiesce
03motr-single-node/62sns-repair-motr-mf
03motr-single-node/70sns-failure-after-repair-quiesce
03motr-single-node/63sns-repair-motr-1k-1f
03motr-single-node/60sns-repair-motr-1f
03motr-single-node/66sns-repair-motr-abort-quiesce
03motr-single-node/24motr-dix-repair-lookup-insert-spiel
03motr-single-node/68sns-repair-motr-shutdown
03motr-single-node/64sns-repair-motr-ios-fail
03motr-single-node/71spiel-sns-motr-repair
03motr-single-node/24motr-dix-repair-lookup-insert-m0repair
03motr-single-node/04sss
03motr-single-node/65sns-repair-motr-abort
04motr-single-node/48motr-raid0-io
04motr-single-node/25m0kv
04motr-single-node/44motr-rm-lock-cc-io
04motr-single-node/45motr-rmw
05motr-single-node/23dix-repair-m0repair
05motr-single-node/43motr-sync-replication
05motr-single-node/42motr-utils
05motr-single-node/45motr-sns-repair-N-1
05motr-single-node/40motr-dgmode
05motr-single-node/23dix-repair-quiesce-m0repair
05motr-single-node/23spiel-dix-repair-quiesce
05motr-single-node/44motr-sns-repair
05motr-single-node/23spiel-dix-repair

Total75🔗

CppCheck Summary

   Cppcheck: No new warnings found 👍

@madhavemuri
Copy link
Contributor

Above 3N k8s job failed due to a known reason.
@trshaffer : Need to check DTM integration test failure .

@rkothiya
Copy link
Contributor

rkothiya commented Sep 1, 2022

Jenkins CI Result : Motr#1681

Motr Test Summary

Test ResultCountInfo
❌Failed1
📁

01motr-single-node/00userspace-tests_mdservice-ut

🏁Skipped32
📁

01motr-single-node/28sys-kvs
01motr-single-node/35m0singlenode
01motr-single-node/04initscripts
01motr-single-node/37protocol
02motr-single-node/51kem
02motr-single-node/20rpc-session-cancel
02motr-single-node/10pver-assign
02motr-single-node/21fsync-single-node
02motr-single-node/13dgmode-io
02motr-single-node/14poolmach
02motr-single-node/11m0t1fs
02motr-single-node/26motr-user-kernel-tests
02motr-single-node/08spiel
03motr-single-node/06conf
03motr-single-node/36spare-reservation
04motr-single-node/34sns-repair-1n-1f
04motr-single-node/08spiel-sns-repair-quiesce
04motr-single-node/28sys-kvs-kernel
04motr-single-node/11m0t1fs-rconfc-fail
04motr-single-node/08spiel-sns-repair
04motr-single-node/19sns-repair-abort
04motr-single-node/22sns-repair-ios-fail
05motr-single-node/18sns-repair-quiesce
05motr-single-node/12fwait
05motr-single-node/16sns-repair-multi
05motr-single-node/07mount-fail
05motr-single-node/15sns-repair-single
05motr-single-node/23sns-abort-quiesce
05motr-single-node/17sns-repair-concurrent-io
05motr-single-node/07mount
05motr-single-node/07mount-multiple
05motr-single-node/12fsync

✔️Passed169
📁

01motr-single-node/00userspace-tests_rpc-packet-encdec-ut
01motr-single-node/00userspace-tests_fdmi-sd-ut
01motr-single-node/00userspace-tests_net-prov-ut
01motr-single-node/00userspace-tests_rpc-link-ut
01motr-single-node/00userspace-tests_fom-stats-ut
01motr-single-node/00userspace-tests_fdmi-pd-ut
01motr-single-node/00userspace-tests_rpc-formation-ut
01motr-single-node/00userspace-tests_balloc-ut
01motr-single-node/00userspace-tests_cob-ut
01motr-single-node/00userspace-tests_net-module
01motr-single-node/00userspace-tests_spiel-ci-ut
01motr-single-node/00userspace-tests_io-nw-xfer-ut
01motr-single-node/00userspace-tests_rpc-session-ut
01motr-single-node/00userspace-tests_spiel-conf-ut
01motr-single-node/00userspace-tests_addb2-storage
01motr-single-node/00userspace-tests_rm-ut
01motr-single-node/00userspace-tests_helpers-ufid-ut
01motr-single-node/00userspace-tests_io-req-ut
01motr-single-node/00userspace-tests_buffer_pool_ut
01motr-single-node/00userspace-tests_be-ut
01motr-single-node/43m0crate
01motr-single-node/00userspace-tests_dix-cm-iter
01motr-single-node/00userspace-tests_fis-ut
01motr-single-node/00userspace-tests_rpc-conn-pool-ut
01motr-single-node/00userspace-tests_idx-ut
01motr-single-node/00userspace-tests_ff2c-ut
01motr-single-node/05confgen
01motr-single-node/00userspace-tests_conf-ut
01motr-single-node/00userspace-tests_cob-foms-ut
01motr-single-node/00userspace-tests_addb2-consumer
01motr-single-node/00userspace-tests_capa-ut
01motr-single-node/00userspace-tests_isc-api-ut
01motr-single-node/00userspace-tests_snscm_storage-ut
01motr-single-node/00userspace-tests_net-bulk-mem
01motr-single-node/00userspace-tests_obj-ut
01motr-single-node/00userspace-tests_confc-ut
01motr-single-node/00userspace-tests_reqh-fop-allow-ut
01motr-single-node/00userspace-tests_reqh-ut
01motr-single-node/00userspace-tests_ios-bufferpool-ut
01motr-single-node/00userspace-tests_io-ut
01motr-single-node/00userspace-tests_rpc-rcv-session-ut
01motr-single-node/00userspace-tests_dtm-dtx-ut
01motr-single-node/00userspace-tests_idx-dix
01motr-single-node/00userspace-tests_io-req-fop-ut
01motr-single-node/00userspace-tests_net-bulk-if
01motr-single-node/00userspace-tests_net-misc-ut
01motr-single-node/00userspace-tests_parity_math_ssse3-ut
01motr-single-node/00userspace-tests_addb2-net
01motr-single-node/00userspace-tests_failure_domains_tree-ut
01motr-single-node/00userspace-tests_fdmi-filterc-ut
01motr-single-node/00userspace-tests_cm-cp-ut
01motr-single-node/00userspace-tests_conf-pvers-ut
01motr-single-node/00userspace-tests_addb2-base
01motr-single-node/00userspace-tests_rpc-at
01motr-single-node/00userspace-tests_dtm0-ut
01motr-single-node/00userspace-tests_parity_math-ut
01motr-single-node/00userspace-tests_net-test
01motr-single-node/00userspace-tests_spiel-ut
01motr-single-node/00userspace-tests_stats-ut
01motr-single-node/00userspace-tests_addb2-sys
01motr-single-node/00userspace-tests_fdmi-filter-eval-ut
01motr-single-node/00userspace-tests_snscm_xform-ut
01motr-single-node/00userspace-tests_ms-fom-ut
01motr-single-node/00userspace-tests_fop-lock-ut
01motr-single-node/00userspace-tests_dtm-nucleus-ut
01motr-single-node/00userspace-tests_xcode_bufvec_fop-ut
01motr-single-node/00userspace-tests_conf-diter-ut
01motr-single-node/00userspace-tests_libconsole-ut
01motr-single-node/00userspace-tests_sm-ut
01motr-single-node/00userspace-tests_di-ut
01motr-single-node/00userspace-tests_rpc-item-source-ut
01motr-single-node/00userspace-tests_addb2-histogram
01motr-single-node/00userspace-tests_isc-service-ut
01motr-single-node/00userspace-tests_sss-ut
01motr-single-node/00userspace-tests_dix-client-ut
01motr-single-node/00userspace-tests_ha-state-ut
01motr-single-node/00userspace-tests_poolmach-ut
01motr-single-node/00userspace-tests_dtm0-log-ut
01motr-single-node/06hagen
01motr-single-node/00userspace-tests_rpc-machine-ut
01motr-single-node/00userspace-tests_rm-rcredits-ut
01motr-single-node/00userspace-tests_snscm_net-ut
01motr-single-node/00userspace-tests_bytecount-ut
01motr-single-node/00userspace-tests_rconfc-ut
01motr-single-node/00userspace-tests_stob-ut
01motr-single-node/00userspace-tests_reqh-service-ut
01motr-single-node/00userspace-tests_rpc-lib-ut
01motr-single-node/00userspace-tests_failure_domains-ut
01motr-single-node/00userspace-tests_sync-ut
01motr-single-node/00userspace-tests_pi_ut
01motr-single-node/00userspace-tests_net-lnet
01motr-single-node/00userspace-tests_udb-ut
01motr-single-node/00userspace-tests_layout-ut
01motr-single-node/00userspace-tests_rpc-connection-ut
01motr-single-node/00userspace-tests_io-pargrp-ut
01motr-single-node/00userspace-tests_rpc-item-ut
01motr-single-node/00userspace-tests_fdmi-fol-fini-ut
01motr-single-node/00userspace-tests_confstr-ut
01motr-single-node/00userspace-tests_module-ut
01motr-single-node/00userspace-tests_cm-ut
01motr-single-node/00userspace-tests_sns-file-lock-ut
01motr-single-node/00userspace-tests_rm-rwlock-ut
01motr-single-node/00userspace-tests_conf-validation-ut
01motr-single-node/00userspace-tests_m0d-ut
01motr-single-node/00userspace-tests_dtm-transmit-ut
01motr-single-node/00userspace-tests_idx-dix-mt
01motr-single-node/00userspace-tests_xcode-ut
01motr-single-node/00userspace-tests_cas-client
01motr-single-node/00userspace-tests_bulk-server-ut
01motr-single-node/00userspace-tests_ha-ut
01motr-single-node/00userspace-tests_conf-walk-ut
01motr-single-node/00userspace-tests_client-ut
01motr-single-node/00userspace-tests_conf-load-ut
01motr-single-node/00userspace-tests_sns-cm-repair-ut
01motr-single-node/00userspace-tests_libm0-ut
01motr-single-node/00userspace-tests_btree-ut
01motr-single-node/00userspace-tests_reqh-service-ctx-ut
01motr-single-node/00userspace-tests_fom-timedwait-ut
01motr-single-node/52motr-singlenode-sanity
01motr-single-node/00userspace-tests_fdmi-fol-ut
01motr-single-node/00userspace-tests_conf-glob-ut
01motr-single-node/00userspace-tests_storage-dev-ut
01motr-single-node/00userspace-tests_cas-service
01motr-single-node/01net
01motr-single-node/00userspace-tests_bulk-client-ut
01motr-single-node/00userspace-tests_layout-access-plan-ut
01motr-single-node/01kernel-tests
01motr-single-node/03console
01motr-single-node/00userspace-tests_dtm0-clk-src-ut
01motr-single-node/02rpcping
01motr-single-node/00userspace-tests_fol-ut
01motr-single-node/00userspace-tests_fit-ut
01motr-single-node/00userspace-tests_libfab-ut
02motr-single-node/07m0d-fatal
02motr-single-node/67fdmi-plugin-multi-filters
02motr-single-node/53clusterusage-alert
02motr-single-node/41motr-conf-update
03motr-single-node/61sns-repair-motr-1n-1f
03motr-single-node/72spiel-sns-motr-repair-quiesce
03motr-single-node/08spiel-multi-confd
03motr-single-node/69sns-repair-motr-quiesce
03motr-single-node/62sns-repair-motr-mf
03motr-single-node/70sns-failure-after-repair-quiesce
03motr-single-node/63sns-repair-motr-1k-1f
03motr-single-node/60sns-repair-motr-1f
03motr-single-node/66sns-repair-motr-abort-quiesce
03motr-single-node/24motr-dix-repair-lookup-insert-spiel
03motr-single-node/68sns-repair-motr-shutdown
03motr-single-node/64sns-repair-motr-ios-fail
03motr-single-node/71spiel-sns-motr-repair
03motr-single-node/24motr-dix-repair-lookup-insert-m0repair
03motr-single-node/04sss
03motr-single-node/65sns-repair-motr-abort
04motr-single-node/73motr-io-small-disks
04motr-single-node/48motr-raid0-io
04motr-single-node/74motr-di-corruption-detection
04motr-single-node/49motr-rpc-cancel
04motr-single-node/25m0kv
04motr-single-node/44motr-rm-lock-cc-io
04motr-single-node/45motr-rmw
05motr-single-node/23dix-repair-m0repair
05motr-single-node/43motr-sync-replication
05motr-single-node/42motr-utils
05motr-single-node/45motr-sns-repair-N-1
05motr-single-node/40motr-dgmode
05motr-single-node/23dix-repair-quiesce-m0repair
05motr-single-node/23spiel-dix-repair-quiesce
05motr-single-node/44motr-sns-repair
05motr-single-node/23spiel-dix-repair

Total202🔗

CppCheck Summary

   Cppcheck: No new warnings found 👍

@madhavemuri
Copy link
Contributor

Above UT failure is fixed in latest main.

Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
@huanghua78
Copy link

@rkothiya
Copy link
Contributor

Jenkins CI Result : Motr#1742

Motr Test Summary

Test ResultCountInfo
❌Failed3
📁

01motr-single-node/00userspace-tests_spiel-ci-ut
01motr-single-node/00userspace-tests_idx-dix
01motr-single-node/00userspace-tests_dix-client-ut

🏁Skipped31
📁

01motr-single-node/28sys-kvs
01motr-single-node/35m0singlenode
01motr-single-node/37protocol
02motr-single-node/51kem
02motr-single-node/20rpc-session-cancel
02motr-single-node/10pver-assign
02motr-single-node/21fsync-single-node
02motr-single-node/13dgmode-io
02motr-single-node/14poolmach
02motr-single-node/11m0t1fs
02motr-single-node/26motr-user-kernel-tests
02motr-single-node/08spiel
03motr-single-node/06conf
03motr-single-node/36spare-reservation
04motr-single-node/34sns-repair-1n-1f
04motr-single-node/08spiel-sns-repair-quiesce
04motr-single-node/28sys-kvs-kernel
04motr-single-node/11m0t1fs-rconfc-fail
04motr-single-node/08spiel-sns-repair
04motr-single-node/19sns-repair-abort
04motr-single-node/22sns-repair-ios-fail
05motr-single-node/18sns-repair-quiesce
05motr-single-node/12fwait
05motr-single-node/16sns-repair-multi
05motr-single-node/07mount-fail
05motr-single-node/15sns-repair-single
05motr-single-node/23sns-abort-quiesce
05motr-single-node/17sns-repair-concurrent-io
05motr-single-node/07mount
05motr-single-node/07mount-multiple
05motr-single-node/12fsync

✔️Passed168
📁

01motr-single-node/00userspace-tests_rpc-packet-encdec-ut
01motr-single-node/00userspace-tests_fdmi-sd-ut
01motr-single-node/00userspace-tests_net-prov-ut
01motr-single-node/00userspace-tests_rpc-link-ut
01motr-single-node/00userspace-tests_fom-stats-ut
01motr-single-node/00userspace-tests_fdmi-pd-ut
01motr-single-node/00userspace-tests_rpc-formation-ut
01motr-single-node/00userspace-tests_balloc-ut
01motr-single-node/00userspace-tests_cob-ut
01motr-single-node/00userspace-tests_net-module
01motr-single-node/00userspace-tests_io-nw-xfer-ut
01motr-single-node/00userspace-tests_rpc-session-ut
01motr-single-node/00userspace-tests_spiel-conf-ut
01motr-single-node/00userspace-tests_addb2-storage
01motr-single-node/00userspace-tests_rm-ut
01motr-single-node/00userspace-tests_helpers-ufid-ut
01motr-single-node/00userspace-tests_io-req-ut
01motr-single-node/00userspace-tests_buffer_pool_ut
01motr-single-node/00userspace-tests_be-ut
01motr-single-node/43m0crate
01motr-single-node/00userspace-tests_dix-cm-iter
01motr-single-node/00userspace-tests_fis-ut
01motr-single-node/00userspace-tests_rpc-conn-pool-ut
01motr-single-node/00userspace-tests_idx-ut
01motr-single-node/00userspace-tests_ff2c-ut
01motr-single-node/05confgen
01motr-single-node/00userspace-tests_conf-ut
01motr-single-node/00userspace-tests_cob-foms-ut
01motr-single-node/00userspace-tests_addb2-consumer
01motr-single-node/00userspace-tests_capa-ut
01motr-single-node/00userspace-tests_isc-api-ut
01motr-single-node/00userspace-tests_snscm_storage-ut
01motr-single-node/00userspace-tests_net-bulk-mem
01motr-single-node/00userspace-tests_obj-ut
01motr-single-node/00userspace-tests_confc-ut
01motr-single-node/00userspace-tests_reqh-fop-allow-ut
01motr-single-node/00userspace-tests_mdservice-ut
01motr-single-node/00userspace-tests_reqh-ut
01motr-single-node/00userspace-tests_ios-bufferpool-ut
01motr-single-node/00userspace-tests_io-ut
01motr-single-node/00userspace-tests_rpc-rcv-session-ut
01motr-single-node/00userspace-tests_dtm-dtx-ut
01motr-single-node/00userspace-tests_io-req-fop-ut
01motr-single-node/00userspace-tests_net-bulk-if
01motr-single-node/00userspace-tests_net-misc-ut
01motr-single-node/00userspace-tests_parity_math_ssse3-ut
01motr-single-node/00userspace-tests_addb2-net
01motr-single-node/00userspace-tests_failure_domains_tree-ut
01motr-single-node/00userspace-tests_fdmi-filterc-ut
01motr-single-node/00userspace-tests_cm-cp-ut
01motr-single-node/00userspace-tests_conf-pvers-ut
01motr-single-node/00userspace-tests_addb2-base
01motr-single-node/00userspace-tests_rpc-at
01motr-single-node/00userspace-tests_dtm0-ut
01motr-single-node/00userspace-tests_parity_math-ut
01motr-single-node/00userspace-tests_net-test
01motr-single-node/00userspace-tests_spiel-ut
01motr-single-node/00userspace-tests_stats-ut
01motr-single-node/00userspace-tests_addb2-sys
01motr-single-node/00userspace-tests_fdmi-filter-eval-ut
01motr-single-node/00userspace-tests_snscm_xform-ut
01motr-single-node/00userspace-tests_ms-fom-ut
01motr-single-node/00userspace-tests_fop-lock-ut
01motr-single-node/00userspace-tests_dtm-nucleus-ut
01motr-single-node/00userspace-tests_xcode_bufvec_fop-ut
01motr-single-node/00userspace-tests_conf-diter-ut
01motr-single-node/00userspace-tests_libconsole-ut
01motr-single-node/00userspace-tests_sm-ut
01motr-single-node/00userspace-tests_di-ut
01motr-single-node/00userspace-tests_rpc-item-source-ut
01motr-single-node/00userspace-tests_addb2-histogram
01motr-single-node/00userspace-tests_isc-service-ut
01motr-single-node/00userspace-tests_sss-ut
01motr-single-node/00userspace-tests_ha-state-ut
01motr-single-node/00userspace-tests_poolmach-ut
01motr-single-node/00userspace-tests_dtm0-log-ut
01motr-single-node/06hagen
01motr-single-node/00userspace-tests_rpc-machine-ut
01motr-single-node/00userspace-tests_rm-rcredits-ut
01motr-single-node/00userspace-tests_snscm_net-ut
01motr-single-node/00userspace-tests_bytecount-ut
01motr-single-node/00userspace-tests_rconfc-ut
01motr-single-node/00userspace-tests_stob-ut
01motr-single-node/00userspace-tests_reqh-service-ut
01motr-single-node/00userspace-tests_rpc-lib-ut
01motr-single-node/00userspace-tests_failure_domains-ut
01motr-single-node/00userspace-tests_sync-ut
01motr-single-node/00userspace-tests_pi_ut
01motr-single-node/00userspace-tests_net-lnet
01motr-single-node/00userspace-tests_udb-ut
01motr-single-node/00userspace-tests_layout-ut
01motr-single-node/04initscripts
01motr-single-node/00userspace-tests_rpc-connection-ut
01motr-single-node/00userspace-tests_io-pargrp-ut
01motr-single-node/00userspace-tests_rpc-item-ut
01motr-single-node/00userspace-tests_fdmi-fol-fini-ut
01motr-single-node/00userspace-tests_confstr-ut
01motr-single-node/00userspace-tests_module-ut
01motr-single-node/00userspace-tests_cm-ut
01motr-single-node/00userspace-tests_sns-file-lock-ut
01motr-single-node/00userspace-tests_rm-rwlock-ut
01motr-single-node/00userspace-tests_conf-validation-ut
01motr-single-node/00userspace-tests_m0d-ut
01motr-single-node/00userspace-tests_dtm-transmit-ut
01motr-single-node/00userspace-tests_idx-dix-mt
01motr-single-node/00userspace-tests_xcode-ut
01motr-single-node/00userspace-tests_cas-client
01motr-single-node/00userspace-tests_bulk-server-ut
01motr-single-node/00userspace-tests_ha-ut
01motr-single-node/00userspace-tests_conf-walk-ut
01motr-single-node/00userspace-tests_client-ut
01motr-single-node/00userspace-tests_conf-load-ut
01motr-single-node/00userspace-tests_sns-cm-repair-ut
01motr-single-node/00userspace-tests_libm0-ut
01motr-single-node/00userspace-tests_btree-ut
01motr-single-node/00userspace-tests_reqh-service-ctx-ut
01motr-single-node/00userspace-tests_fom-timedwait-ut
01motr-single-node/52motr-singlenode-sanity
01motr-single-node/00userspace-tests_fdmi-fol-ut
01motr-single-node/00userspace-tests_conf-glob-ut
01motr-single-node/00userspace-tests_storage-dev-ut
01motr-single-node/00userspace-tests_cas-service
01motr-single-node/01net
01motr-single-node/00userspace-tests_bulk-client-ut
01motr-single-node/00userspace-tests_layout-access-plan-ut
01motr-single-node/01kernel-tests
01motr-single-node/03console
01motr-single-node/00userspace-tests_dtm0-clk-src-ut
01motr-single-node/02rpcping
01motr-single-node/00userspace-tests_fol-ut
01motr-single-node/00userspace-tests_fit-ut
01motr-single-node/00userspace-tests_libfab-ut
02motr-single-node/07m0d-fatal
02motr-single-node/67fdmi-plugin-multi-filters
02motr-single-node/53clusterusage-alert
02motr-single-node/41motr-conf-update
03motr-single-node/61sns-repair-motr-1n-1f
03motr-single-node/72spiel-sns-motr-repair-quiesce
03motr-single-node/08spiel-multi-confd
03motr-single-node/69sns-repair-motr-quiesce
03motr-single-node/62sns-repair-motr-mf
03motr-single-node/70sns-failure-after-repair-quiesce
03motr-single-node/63sns-repair-motr-1k-1f
03motr-single-node/60sns-repair-motr-1f
03motr-single-node/66sns-repair-motr-abort-quiesce
03motr-single-node/24motr-dix-repair-lookup-insert-spiel
03motr-single-node/68sns-repair-motr-shutdown
03motr-single-node/64sns-repair-motr-ios-fail
03motr-single-node/71spiel-sns-motr-repair
03motr-single-node/24motr-dix-repair-lookup-insert-m0repair
03motr-single-node/04sss
03motr-single-node/65sns-repair-motr-abort
04motr-single-node/73motr-io-small-disks
04motr-single-node/48motr-raid0-io
04motr-single-node/74motr-di-corruption-detection
04motr-single-node/49motr-rpc-cancel
04motr-single-node/25m0kv
04motr-single-node/44motr-rm-lock-cc-io
04motr-single-node/45motr-rmw
05motr-single-node/23dix-repair-m0repair
05motr-single-node/43motr-sync-replication
05motr-single-node/42motr-utils
05motr-single-node/45motr-sns-repair-N-1
05motr-single-node/40motr-dgmode
05motr-single-node/23dix-repair-quiesce-m0repair
05motr-single-node/23spiel-dix-repair-quiesce
05motr-single-node/44motr-sns-repair
05motr-single-node/23spiel-dix-repair

Total202🔗

CppCheck Summary

   Cppcheck: No new warnings found 👍

madhavemuri and others added 6 commits September 12, 2022 13:08
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>
@rkothiya
Copy link
Contributor

Jenkins CI Result : Motr#1772

Motr Test Summary

Test ResultCountInfo
❌Failed0
📁

🏁Skipped29
📁

01motr-single-node/28sys-kvs
01motr-single-node/35m0singlenode
01motr-single-node/37protocol
02motr-single-node/51kem
02motr-single-node/20rpc-session-cancel
02motr-single-node/21fsync-single-node
02motr-single-node/13dgmode-io
02motr-single-node/14poolmach
02motr-single-node/11m0t1fs
02motr-single-node/08spiel
03motr-single-node/06conf
03motr-single-node/36spare-reservation
04motr-single-node/34sns-repair-1n-1f
04motr-single-node/08spiel-sns-repair-quiesce
04motr-single-node/28sys-kvs-kernel
04motr-single-node/11m0t1fs-rconfc-fail
04motr-single-node/08spiel-sns-repair
04motr-single-node/19sns-repair-abort
04motr-single-node/22sns-repair-ios-fail
05motr-single-node/18sns-repair-quiesce
05motr-single-node/12fwait
05motr-single-node/16sns-repair-multi
05motr-single-node/07mount-fail
05motr-single-node/15sns-repair-single
05motr-single-node/23sns-abort-quiesce
05motr-single-node/17sns-repair-concurrent-io
05motr-single-node/07mount
05motr-single-node/07mount-multiple
05motr-single-node/12fsync

✔️Passed173
📁

01motr-single-node/00userspace-tests_rpc-packet-encdec-ut
01motr-single-node/00userspace-tests_fdmi-sd-ut
01motr-single-node/00userspace-tests_net-prov-ut
01motr-single-node/00userspace-tests_rpc-link-ut
01motr-single-node/00userspace-tests_fom-stats-ut
01motr-single-node/00userspace-tests_fdmi-pd-ut
01motr-single-node/00userspace-tests_rpc-formation-ut
01motr-single-node/00userspace-tests_balloc-ut
01motr-single-node/00userspace-tests_cob-ut
01motr-single-node/00userspace-tests_net-module
01motr-single-node/00userspace-tests_spiel-ci-ut
01motr-single-node/00userspace-tests_io-nw-xfer-ut
01motr-single-node/00userspace-tests_rpc-session-ut
01motr-single-node/00userspace-tests_spiel-conf-ut
01motr-single-node/00userspace-tests_addb2-storage
01motr-single-node/00userspace-tests_rm-ut
01motr-single-node/00userspace-tests_helpers-ufid-ut
01motr-single-node/00userspace-tests_io-req-ut
01motr-single-node/00userspace-tests_buffer_pool_ut
01motr-single-node/00userspace-tests_be-ut
01motr-single-node/43m0crate
01motr-single-node/00userspace-tests_dix-cm-iter
01motr-single-node/00userspace-tests_fis-ut
01motr-single-node/00userspace-tests_rpc-conn-pool-ut
01motr-single-node/00userspace-tests_idx-ut
01motr-single-node/00userspace-tests_ff2c-ut
01motr-single-node/05confgen
01motr-single-node/00userspace-tests_conf-ut
01motr-single-node/00userspace-tests_cob-foms-ut
01motr-single-node/00userspace-tests_addb2-consumer
01motr-single-node/00userspace-tests_capa-ut
01motr-single-node/00userspace-tests_isc-api-ut
01motr-single-node/00userspace-tests_snscm_storage-ut
01motr-single-node/00userspace-tests_net-bulk-mem
01motr-single-node/00userspace-tests_obj-ut
01motr-single-node/00userspace-tests_confc-ut
01motr-single-node/00userspace-tests_reqh-fop-allow-ut
01motr-single-node/00userspace-tests_mdservice-ut
01motr-single-node/00userspace-tests_reqh-ut
01motr-single-node/00userspace-tests_ios-bufferpool-ut
01motr-single-node/00userspace-tests_io-ut
01motr-single-node/00userspace-tests_rpc-rcv-session-ut
01motr-single-node/00userspace-tests_dtm-dtx-ut
01motr-single-node/00userspace-tests_idx-dix
01motr-single-node/00userspace-tests_io-req-fop-ut
01motr-single-node/00userspace-tests_net-bulk-if
01motr-single-node/00userspace-tests_net-misc-ut
01motr-single-node/00userspace-tests_parity_math_ssse3-ut
01motr-single-node/00userspace-tests_addb2-net
01motr-single-node/00userspace-tests_failure_domains_tree-ut
01motr-single-node/00userspace-tests_fdmi-filterc-ut
01motr-single-node/00userspace-tests_cm-cp-ut
01motr-single-node/00userspace-tests_conf-pvers-ut
01motr-single-node/00userspace-tests_addb2-base
01motr-single-node/00userspace-tests_rpc-at
01motr-single-node/00userspace-tests_dtm0-ut
01motr-single-node/00userspace-tests_parity_math-ut
01motr-single-node/00userspace-tests_net-test
01motr-single-node/00userspace-tests_spiel-ut
01motr-single-node/00userspace-tests_stats-ut
01motr-single-node/00userspace-tests_addb2-sys
01motr-single-node/00userspace-tests_fdmi-filter-eval-ut
01motr-single-node/00userspace-tests_snscm_xform-ut
01motr-single-node/00userspace-tests_ms-fom-ut
01motr-single-node/00userspace-tests_fop-lock-ut
01motr-single-node/00userspace-tests_dtm-nucleus-ut
01motr-single-node/00userspace-tests_xcode_bufvec_fop-ut
01motr-single-node/00userspace-tests_conf-diter-ut
01motr-single-node/00userspace-tests_libconsole-ut
01motr-single-node/00userspace-tests_sm-ut
01motr-single-node/00userspace-tests_di-ut
01motr-single-node/00userspace-tests_rpc-item-source-ut
01motr-single-node/00userspace-tests_addb2-histogram
01motr-single-node/00userspace-tests_isc-service-ut
01motr-single-node/00userspace-tests_sss-ut
01motr-single-node/00userspace-tests_dix-client-ut
01motr-single-node/00userspace-tests_ha-state-ut
01motr-single-node/00userspace-tests_poolmach-ut
01motr-single-node/00userspace-tests_dtm0-log-ut
01motr-single-node/06hagen
01motr-single-node/00userspace-tests_rpc-machine-ut
01motr-single-node/00userspace-tests_rm-rcredits-ut
01motr-single-node/00userspace-tests_snscm_net-ut
01motr-single-node/00userspace-tests_bytecount-ut
01motr-single-node/00userspace-tests_rconfc-ut
01motr-single-node/00userspace-tests_stob-ut
01motr-single-node/00userspace-tests_reqh-service-ut
01motr-single-node/00userspace-tests_rpc-lib-ut
01motr-single-node/00userspace-tests_failure_domains-ut
01motr-single-node/00userspace-tests_sync-ut
01motr-single-node/00userspace-tests_pi_ut
01motr-single-node/00userspace-tests_net-lnet
01motr-single-node/00userspace-tests_udb-ut
01motr-single-node/00userspace-tests_layout-ut
01motr-single-node/04initscripts
01motr-single-node/00userspace-tests_rpc-connection-ut
01motr-single-node/00userspace-tests_io-pargrp-ut
01motr-single-node/00userspace-tests_rpc-item-ut
01motr-single-node/00userspace-tests_fdmi-fol-fini-ut
01motr-single-node/00userspace-tests_confstr-ut
01motr-single-node/00userspace-tests_module-ut
01motr-single-node/00userspace-tests_cm-ut
01motr-single-node/00userspace-tests_sns-file-lock-ut
01motr-single-node/00userspace-tests_rm-rwlock-ut
01motr-single-node/00userspace-tests_conf-validation-ut
01motr-single-node/00userspace-tests_m0d-ut
01motr-single-node/00userspace-tests_dtm-transmit-ut
01motr-single-node/00userspace-tests_idx-dix-mt
01motr-single-node/00userspace-tests_xcode-ut
01motr-single-node/00userspace-tests_cas-client
01motr-single-node/00userspace-tests_bulk-server-ut
01motr-single-node/00userspace-tests_ha-ut
01motr-single-node/00userspace-tests_conf-walk-ut
01motr-single-node/00userspace-tests_client-ut
01motr-single-node/00userspace-tests_conf-load-ut
01motr-single-node/00userspace-tests_sns-cm-repair-ut
01motr-single-node/00userspace-tests_libm0-ut
01motr-single-node/00userspace-tests_btree-ut
01motr-single-node/00userspace-tests_reqh-service-ctx-ut
01motr-single-node/00userspace-tests_fom-timedwait-ut
01motr-single-node/52motr-singlenode-sanity
01motr-single-node/00userspace-tests_fdmi-fol-ut
01motr-single-node/00userspace-tests_conf-glob-ut
01motr-single-node/00userspace-tests_storage-dev-ut
01motr-single-node/00userspace-tests_cas-service
01motr-single-node/01net
01motr-single-node/00userspace-tests_bulk-client-ut
01motr-single-node/00userspace-tests_layout-access-plan-ut
01motr-single-node/01kernel-tests
01motr-single-node/03console
01motr-single-node/00userspace-tests_dtm0-clk-src-ut
01motr-single-node/02rpcping
01motr-single-node/00userspace-tests_fol-ut
01motr-single-node/00userspace-tests_fit-ut
01motr-single-node/00userspace-tests_libfab-ut
02motr-single-node/07m0d-fatal
02motr-single-node/67fdmi-plugin-multi-filters
02motr-single-node/26motr-user-tests
02motr-single-node/53clusterusage-alert
02motr-single-node/41motr-conf-update
02motr-single-node/10pver-assign
03motr-single-node/61sns-repair-motr-1n-1f
03motr-single-node/72spiel-sns-motr-repair-quiesce
03motr-single-node/08spiel-multi-confd
03motr-single-node/69sns-repair-motr-quiesce
03motr-single-node/62sns-repair-motr-mf
03motr-single-node/70sns-failure-after-repair-quiesce
03motr-single-node/63sns-repair-motr-1k-1f
03motr-single-node/60sns-repair-motr-1f
03motr-single-node/66sns-repair-motr-abort-quiesce
03motr-single-node/24motr-dix-repair-lookup-insert-spiel
03motr-single-node/68sns-repair-motr-shutdown
03motr-single-node/64sns-repair-motr-ios-fail
03motr-single-node/71spiel-sns-motr-repair
03motr-single-node/24motr-dix-repair-lookup-insert-m0repair
03motr-single-node/04sss
03motr-single-node/65sns-repair-motr-abort
04motr-single-node/73motr-io-small-disks
04motr-single-node/48motr-raid0-io
04motr-single-node/74motr-di-corruption-detection
04motr-single-node/49motr-rpc-cancel
04motr-single-node/25m0kv
04motr-single-node/44motr-rm-lock-cc-io
04motr-single-node/45motr-rmw
05motr-single-node/23dix-repair-m0repair
05motr-single-node/43motr-sync-replication
05motr-single-node/42motr-utils
05motr-single-node/45motr-sns-repair-N-1
05motr-single-node/40motr-dgmode
05motr-single-node/23dix-repair-quiesce-m0repair
05motr-single-node/23spiel-dix-repair-quiesce
05motr-single-node/44motr-sns-repair
05motr-single-node/23spiel-dix-repair

Total202🔗

CppCheck Summary

   Cppcheck: No new warnings found 👍

@rkothiya
Copy link
Contributor

DTM-integration has passed as shown below :
image

@madhavemuri
Copy link
Contributor

madhavemuri commented Sep 16, 2022

Re-triggered DTM integration test passed https://eos-jenkins.colo.seagate.com/job/Motr/job/DTM-Integration-Test/774/
Screenshot 2022-09-16 124501

@madhavemuri
Copy link
Contributor

@rkothiya : You can consider following commit description,

To support consistency with read-write quorums, version suppport is needed
for CAS operations.

Solution
Currently, several factors control whether versioned CAS operations are used.
In particular,
 - the COF_VERSIONED flag
 - the presence of a valid transaction descriptor

If COF_VERSIONED is passed but no transaction is set, which is done when DTM0
is enabled, the current time is automatically used.
Rather than checking for a full transaction descriptor (ID, participants, etc.),
allowed CAS to only require a timestamp to enable versioned operations.

The other major change is adding the COF_VERSIONED flag to DIX operations.
This has some implications for semantics (e.g. delete of a non-existent
record returns 0 rather than ENOENT). It also requires put to have COF_OVERWRITE support.

This change enables CAS VERSION support tombstone addition for delete operations.

Note that without DTM and log pruner versions may accumulate as delete adds a tombstone
rather than deleting records, so tombstone cleanup will be needed otherwise which
will occupy meta-data storage.

Signed-off-by: Tim Shaffer <tim.shaffer@seagate.com>

@rkothiya rkothiya merged commit 33e87a1 into Seagate:main Sep 16, 2022
@tshaffe1 tshaffe1 deleted the versioned-cas branch September 16, 2022 13:37
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants