From: Radosław Zarzyński Date: Thu, 22 Feb 2024 19:48:55 +0000 (+0100) Subject: ec: rename object_size -> stripe_width in get_chunk_size() X-Git-Tag: testing/wip-batrick-testing-20240411.154038~225^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f1351ea3d463a6cb669ee66cf24d0b3c2debef3f;p=ceph-ci.git ec: rename object_size -> stripe_width in get_chunk_size() `object_size` was misleading in my perception; it suggested to me that the chunking happens on objects, not their stripes. `stripe_width` corresponds with the naming in the ctor of `ECBackend`. Signed-off-by: Radosław Zarzyński --- diff --git a/src/erasure-code/ErasureCodeInterface.h b/src/erasure-code/ErasureCodeInterface.h index b0c24e1e42a..7107f978dd4 100644 --- a/src/erasure-code/ErasureCodeInterface.h +++ b/src/erasure-code/ErasureCodeInterface.h @@ -261,21 +261,21 @@ namespace ceph { /** * Return the size (in bytes) of a single chunk created by a call * to the **decode** method. The returned size multiplied by - * **get_chunk_count()** is greater or equal to **object_size**. + * **get_chunk_count()** is greater or equal to **stripe_width**. * * If the object size is properly aligned, the chunk size is - * **object_size / get_chunk_count()**. However, if - * **object_size** is not a multiple of **get_chunk_count** or if + * **stripe_width / get_chunk_count()**. However, if + * **stripe_width** is not a multiple of **get_chunk_count** or if * the implementation imposes additional alignment constraints, * the chunk size may be larger. * * The byte found at offset **B** of the original object is mapped * to chunk **B / get_chunk_size()** at offset **B % get_chunk_size()**. * - * @param [in] object_size the number of bytes of the object to **encode()** + * @param [in] stripe_width the number of bytes of the object to **encode()** * @return the size (in bytes) of a single chunk created by **encode()** */ - virtual unsigned int get_chunk_size(unsigned int object_size) const = 0; + virtual unsigned int get_chunk_size(unsigned int stripe_width) const = 0; /** * Compute the smallest subset of **available** chunks that needs diff --git a/src/erasure-code/clay/ErasureCodeClay.cc b/src/erasure-code/clay/ErasureCodeClay.cc index 7162cecbd9f..ba37b8c721c 100644 --- a/src/erasure-code/clay/ErasureCodeClay.cc +++ b/src/erasure-code/clay/ErasureCodeClay.cc @@ -87,12 +87,12 @@ int ErasureCodeClay::init(ErasureCodeProfile &profile, } -unsigned int ErasureCodeClay::get_chunk_size(unsigned int object_size) const +unsigned int ErasureCodeClay::get_chunk_size(unsigned int stripe_width) const { unsigned int alignment_scalar_code = pft.erasure_code->get_chunk_size(1); unsigned int alignment = sub_chunk_no * k * alignment_scalar_code; - return round_up_to(object_size, alignment) / k; + return round_up_to(stripe_width, alignment) / k; } int ErasureCodeClay::minimum_to_decode(const set &want_to_read, diff --git a/src/erasure-code/clay/ErasureCodeClay.h b/src/erasure-code/clay/ErasureCodeClay.h index 9b23b9907c3..3697df721ef 100644 --- a/src/erasure-code/clay/ErasureCodeClay.h +++ b/src/erasure-code/clay/ErasureCodeClay.h @@ -58,7 +58,7 @@ public: return sub_chunk_no; } - unsigned int get_chunk_size(unsigned int object_size) const override; + unsigned int get_chunk_size(unsigned int stripe_width) const override; int minimum_to_decode(const std::set &want_to_read, const std::set &available, diff --git a/src/erasure-code/isa/ErasureCodeIsa.cc b/src/erasure-code/isa/ErasureCodeIsa.cc index 58aff4b0e0d..1c2eadfdd0f 100644 --- a/src/erasure-code/isa/ErasureCodeIsa.cc +++ b/src/erasure-code/isa/ErasureCodeIsa.cc @@ -63,10 +63,10 @@ ErasureCodeIsa::init(ErasureCodeProfile &profile, ostream *ss) // ----------------------------------------------------------------------------- unsigned int -ErasureCodeIsa::get_chunk_size(unsigned int object_size) const +ErasureCodeIsa::get_chunk_size(unsigned int stripe_width) const { unsigned alignment = get_alignment(); - unsigned chunk_size = ( object_size + k - 1 ) / k; + unsigned chunk_size = (stripe_width + k - 1) / k; dout(20) << "get_chunk_size: chunk_size " << chunk_size << " must be modulo " << alignment << dendl; unsigned modulo = chunk_size % alignment; diff --git a/src/erasure-code/isa/ErasureCodeIsa.h b/src/erasure-code/isa/ErasureCodeIsa.h index 705a1723aa6..06c51bbc907 100644 --- a/src/erasure-code/isa/ErasureCodeIsa.h +++ b/src/erasure-code/isa/ErasureCodeIsa.h @@ -71,7 +71,7 @@ public: return k; } - unsigned int get_chunk_size(unsigned int object_size) const override; + unsigned int get_chunk_size(unsigned int stripe_width) const override; int encode_chunks(const std::set &want_to_encode, std::map *encoded) override; diff --git a/src/erasure-code/jerasure/ErasureCodeJerasure.cc b/src/erasure-code/jerasure/ErasureCodeJerasure.cc index 3a780de811c..7c4cfa4f8a1 100644 --- a/src/erasure-code/jerasure/ErasureCodeJerasure.cc +++ b/src/erasure-code/jerasure/ErasureCodeJerasure.cc @@ -77,12 +77,12 @@ int ErasureCodeJerasure::parse(ErasureCodeProfile &profile, return err; } -unsigned int ErasureCodeJerasure::get_chunk_size(unsigned int object_size) const +unsigned int ErasureCodeJerasure::get_chunk_size(unsigned int stripe_width) const { unsigned alignment = get_alignment(); if (per_chunk_alignment) { - unsigned chunk_size = object_size / k; - if (object_size % k) + unsigned chunk_size = stripe_width / k; + if (stripe_width % k) chunk_size++; dout(20) << "get_chunk_size: chunk_size " << chunk_size << " must be modulo " << alignment << dendl; @@ -95,8 +95,8 @@ unsigned int ErasureCodeJerasure::get_chunk_size(unsigned int object_size) const } return chunk_size; } else { - unsigned tail = object_size % alignment; - unsigned padded_length = object_size + ( tail ? ( alignment - tail ) : 0 ); + unsigned tail = stripe_width % alignment; + unsigned padded_length = stripe_width + (tail ? (alignment - tail) : 0); ceph_assert(padded_length % k == 0); return padded_length / k; } diff --git a/src/erasure-code/jerasure/ErasureCodeJerasure.h b/src/erasure-code/jerasure/ErasureCodeJerasure.h index 2272e0aad63..75d5c3c1a56 100644 --- a/src/erasure-code/jerasure/ErasureCodeJerasure.h +++ b/src/erasure-code/jerasure/ErasureCodeJerasure.h @@ -54,7 +54,7 @@ public: return k; } - unsigned int get_chunk_size(unsigned int object_size) const override; + unsigned int get_chunk_size(unsigned int stripe_width) const override; int encode_chunks(const std::set &want_to_encode, std::map *encoded) override; diff --git a/src/erasure-code/lrc/ErasureCodeLrc.cc b/src/erasure-code/lrc/ErasureCodeLrc.cc index bea861f1ade..eb8ebd81045 100644 --- a/src/erasure-code/lrc/ErasureCodeLrc.cc +++ b/src/erasure-code/lrc/ErasureCodeLrc.cc @@ -555,9 +555,9 @@ set ErasureCodeLrc::get_erasures(const set &want, return result; } -unsigned int ErasureCodeLrc::get_chunk_size(unsigned int object_size) const +unsigned int ErasureCodeLrc::get_chunk_size(unsigned int stripe_width) const { - return layers.front().erasure_code->get_chunk_size(object_size); + return layers.front().erasure_code->get_chunk_size(stripe_width); } void p(const set &s) { cerr << s; } // for gdb diff --git a/src/erasure-code/lrc/ErasureCodeLrc.h b/src/erasure-code/lrc/ErasureCodeLrc.h index e5b0915ba86..d5e3a07e847 100644 --- a/src/erasure-code/lrc/ErasureCodeLrc.h +++ b/src/erasure-code/lrc/ErasureCodeLrc.h @@ -103,7 +103,7 @@ public: return data_chunk_count; } - unsigned int get_chunk_size(unsigned int object_size) const override; + unsigned int get_chunk_size(unsigned int stripe_width) const override; int encode_chunks(const std::set &want_to_encode, std::map *encoded) override; diff --git a/src/erasure-code/shec/ErasureCodeShec.cc b/src/erasure-code/shec/ErasureCodeShec.cc index 3634be2fb3b..70b1372bda4 100644 --- a/src/erasure-code/shec/ErasureCodeShec.cc +++ b/src/erasure-code/shec/ErasureCodeShec.cc @@ -58,11 +58,11 @@ int ErasureCodeShec::init(ErasureCodeProfile &profile, return ErasureCode::init(profile, ss); } -unsigned int ErasureCodeShec::get_chunk_size(unsigned int object_size) const +unsigned int ErasureCodeShec::get_chunk_size(unsigned int stripe_width) const { unsigned alignment = get_alignment(); - unsigned tail = object_size % alignment; - unsigned padded_length = object_size + ( tail ? ( alignment - tail ) : 0 ); + unsigned tail = stripe_width % alignment; + unsigned padded_length = stripe_width + (tail ? (alignment - tail) : 0); ceph_assert(padded_length % k == 0); return padded_length / k; diff --git a/src/erasure-code/shec/ErasureCodeShec.h b/src/erasure-code/shec/ErasureCodeShec.h index 44a0778854f..51e20359a41 100644 --- a/src/erasure-code/shec/ErasureCodeShec.h +++ b/src/erasure-code/shec/ErasureCodeShec.h @@ -69,7 +69,7 @@ public: return k; } - unsigned int get_chunk_size(unsigned int object_size) const override; + unsigned int get_chunk_size(unsigned int stripe_width) const override; int _minimum_to_decode(const std::set &want_to_read, const std::set &available_chunks,