]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: Remove all references to hinfo from optimized EC 63960/head
authorAlex Ainscow <aainscow@uk.ibm.com>
Wed, 11 Jun 2025 15:24:12 +0000 (16:24 +0100)
committerAlex Ainscow <aainscow@uk.ibm.com>
Thu, 10 Jul 2025 13:57:11 +0000 (14:57 +0100)
commitae4da729282fad6f554dac3091f3d0ccb92f6eba
tree69e624b9130e1b656613236485532c542d1b800c
parent25803eccf2f6792983b25e2146f19ba17851cd97
osd: Remove all references to hinfo from optimized EC

    Legacy EC used hinfo to store two things:
    1. Shard size
    2. CRCs of the shards

    However:
    * Optimized EC stores different object sizes on each shard
    * Optimized EC scrub calculates the correct sizes of shards and checks them, so shard size checks are not needed in hinfo.
    * Bluestore checks the CRC.
    * Seastore checks the CRC.

    As such, the hinfo object is redundant. As such we remove it in
    optimized EC:

    1. Remove all references/upgrades to hinfo.
    2. Delete hinfo attribute if found on recovery/backfill.
    3. Redirect all scrub references for hinfo to legacy EC.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
18 files changed:
src/crimson/osd/scrub/scrub_validator.cc
src/erasure-code/consistency/ECEncoder.cc
src/osd/ECBackend.cc
src/osd/ECBackend.h
src/osd/ECCommon.cc
src/osd/ECCommon.h
src/osd/ECTransaction.cc
src/osd/ECTransaction.h
src/osd/ECUtil.cc
src/osd/ECUtil.h
src/osd/scrubber/scrub_backend.cc
src/test/osd/TestECBackend.cc
src/test/osd/test_ec_transaction.cc
src/tools/CMakeLists.txt
src/tools/ceph-dencoder/osd_types.h
src/tools/ceph_objectstore_tool.cc
src/tools/erasure-code/ceph-erasure-code-tool.cc
src/tools/rados/rados.cc