]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/os/seastore: introduce stage_visibility_handoff 68127/head
authorMatan Breizman <mbreizma@redhat.com>
Tue, 31 Mar 2026 09:30:25 +0000 (12:30 +0300)
committerMatan Breizman <mbreizma@redhat.com>
Thu, 23 Apr 2026 09:22:41 +0000 (09:22 +0000)
commit9f0896e94726f0a86c5546075844b45e453a6c34
tree6d00166d2fa8e4eee5f680988c01ea35d7165692
parentb8143652d738c0c5814efa021b721844b50aabac
crimson/os/seastore: introduce stage_visibility_handoff

Generalize prepare_rewrite_publish_to_prior() into stage_visibility_handoff().

* introduce should_use_no_conflict_publish

* Replace is_rewrite_transaction() checks with should_use_no_conflict_publish(),
  so adding new no-conflict users becomes straightforward.

* Stop committing metadata (commit_state + sync_checksum) during prepare_record()
  (pre-commit). While it is correct for rewrite, doing it pre-commit doesn't buy
  us anything today because readers are still blocked until the publish finishes.

  Moving metadata commit to the after commit phase would also make future
  non-rewrite users easier to support.

This is a prep step for expanding no-conflict publish coverage.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/os/seastore/btree/fixed_kv_node.h
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/cached_extent.cc
src/crimson/os/seastore/lba/lba_btree_node.h
src/crimson/os/seastore/seastore_types.h