]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
nvmeofgw: beacon diff implementation in the monitor and in the MonClient.
authorLeonid Chernin <leonidc@il.ibm.com>
Mon, 15 Sep 2025 11:04:04 +0000 (14:04 +0300)
committerLeonid Chernin <leonidc@il.ibm.com>
Wed, 29 Apr 2026 13:32:11 +0000 (16:32 +0300)
commit966a71b67a6a627e99737b832bc493e6893c1ca5
treed82d520508c17e325f2972995148f49310b75d5c
parentfa49c614c8096ec12d94e0fcedff599e1199e0a2
nvmeofgw: beacon diff implementation in the monitor and in the MonClient.

     -monclient encodes subsystems by beacon-diff rules if BEACON_DIFF
      bit is enabled by quorum
     -monitor processes beacons by beacon-diff new schema
     -monitor detects sequence out of order(ooo) condition and handles it
     -in case ooo detected monitor send ack to the gw with the expected correct sequence
     -monitor skips failovers for some interval when ooo detected
     -monitor ignores all becons with incorrect sequences until gw sends expected one
     -coding upgrade rules

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
Fixes: https://tracker.ceph.com/issues/72394
(cherry picked from commit 3555a28e45c5b44289f12abe2fc843e21c7ebf87)

Conflicts:
  src/mon/NVMeofGwMon.h
  check_beacon_timeout() was in tentacle, and in main, but wasn't a part of this commit.
  Conflict resolution - this should be there because it is required for fast failover

  src/test/CMakeLists.txt
  the problem was that there is an empty line at the end of the file in main, but not in tentacle
17 files changed:
src/CMakeLists.txt
src/include/ceph_features.h
src/messages/MNVMeofGwBeacon.h
src/mon/NVMeofGwBeaconConstants.h [new file with mode: 0644]
src/mon/NVMeofGwMap.cc
src/mon/NVMeofGwMap.h
src/mon/NVMeofGwMon.cc
src/mon/NVMeofGwMon.h
src/mon/NVMeofGwSerialize.h
src/mon/NVMeofGwTypes.h
src/nvmeof/NVMeofGwMonitorClient.cc
src/nvmeof/NVMeofGwMonitorClient.h
src/nvmeof/NVMeofGwUtils.cc [new file with mode: 0644]
src/nvmeof/NVMeofGwUtils.h [new file with mode: 0644]
src/test/CMakeLists.txt
src/test/test_nvmeof_gw_utils.cc [new file with mode: 0644]
src/test/test_nvmeof_mon_encoding.cc