]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd,crimson/osd: use pg_committed_to rather than mlcod for submit_transaction
authorSamuel Just <sjust@redhat.com>
Thu, 28 Mar 2024 02:05:16 +0000 (19:05 -0700)
committerSamuel Just <sjust@redhat.com>
Fri, 18 Oct 2024 20:33:57 +0000 (20:33 +0000)
commitc58a40f1dd560b74e825ef2f2d9792d1560c2683
treef83a0879c535f1e70f16662f8eb53beb7df3e847
parent6be4d397d027b1b824298767a4a8c1372a3aea62
osd,crimson/osd: use pg_committed_to rather than mlcod for submit_transaction

This commit actually changes the bound we're propagating.  This solves
two bugs:
- Using min_last_complete_ondisk caused replicas to be two update rounds
  behind rather than one
- Replicas don't actually have enough information to set
  min_last_complete_ondisk on activation, so we couldn't serve replica
  reads until the first write.  pg_committed_to, on the other hand, is
  fine as the activation last_update cannot become divergent.

Moreover, last_complete won't advance past missing objects causing
min_last_complete_ondisk to be blocked by any replica missing object.
Note that the replica read pathway seperately checks whether the target
is missing locally, so that property was not needed.

Fixes: https://tracker.ceph.com/issues/65086
Fixes: https://tracker.ceph.com/issues/65085
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/osd/ops_executer.cc
src/crimson/osd/pg.h
src/osd/PeeringState.cc
src/osd/PrimaryLogPG.cc