]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: EC optimizations: add partial_writes_last_complete to pg_info_t
authorBill Scales <156200352+bill-scales@users.noreply.github.com>
Thu, 6 Mar 2025 07:58:51 +0000 (07:58 +0000)
committerBill Scales <bill_scales@uk.ibm.com>
Mon, 7 Apr 2025 14:00:55 +0000 (15:00 +0100)
commit42dc7bb12b951970c6f30432e4b7d58285b0b419
tree3dab1a1e20865e0795eb89e29e69b60511337951
parent5c6f34603ec7db5eb794600ba4f04bfce0712005
osd: EC optimizations: add partial_writes_last_complete to pg_info_t

Add partial_writes_last_complete map to pg_info_t and pg_fast_info_t.
For optimized EC pools not all shards receive every log entry. As
log entries are marked completed the partial writeis last complete
map is updated to track shards that did not receive the log entry.

Each map entry stores an eversion range. The first version is the last
completion the shard participated in, the second version tracks subsequent
updates where the shard was not updated. For example the range 88'10-88'12
means a shard completed update 10 and that updates 11 and 12 intentionally
did not update the shard. This information is used during peering to
distinguish a shard that is missing updates from a shard that intentionally
did not participate in an update to work out what recovery is required.

By default this map is empty indicating that every shard is expected to
participate in an update and have a copy of the log entry.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
src/osd/osd_types.cc
src/osd/osd_types.h