From cb7548f0dcc9fe6dd9bdfe360dc1bd3eb3a51ae6 Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Mon, 13 May 2024 04:21:26 +0000 Subject: [PATCH] crimson/os/seastore: add comments to add a note that seastore_obj_data_write_amplification needs to be reconsidered Signed-off-by: Myoungwon Oh --- src/common/options/crimson.yaml.in | 2 ++ src/crimson/os/seastore/object_data_handler.cc | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/common/options/crimson.yaml.in b/src/common/options/crimson.yaml.in index 7030780d9a9fd..0c25c3f614060 100644 --- a/src/common/options/crimson.yaml.in +++ b/src/common/options/crimson.yaml.in @@ -108,6 +108,8 @@ options: level: advanced desc: split extent if ratio of total extent size to write size exceeds this value default: 1.25 +# TODO: seastore_obj_data_write_amplification is no longer correct if +# seastore_data_delta_based_overwrite is enabled. So, this should be reconsidered. - name: seastore_max_concurrent_transactions type: uint level: advanced diff --git a/src/crimson/os/seastore/object_data_handler.cc b/src/crimson/os/seastore/object_data_handler.cc index 193927471b602..57595fc2ca097 100644 --- a/src/crimson/os/seastore/object_data_handler.cc +++ b/src/crimson/os/seastore/object_data_handler.cc @@ -711,6 +711,8 @@ public: left_operation(overwrite_operation_t::UNKNOWN), right_operation(overwrite_operation_t::UNKNOWN), block_size(block_size), + // TODO: introduce PhysicalNodeMapping::is_fresh() + // Note: fresh write can be merged with overwrite if they overlap. is_left_fresh(!pins.front()->is_stable()), is_right_fresh(!pins.back()->is_stable()) { validate(); @@ -741,6 +743,9 @@ private: * seastore_obj_data_write_amplification; otherwise, split the * original extent into at most three parts: origin-left, part-to-be-modified * and origin-right. + * + * TODO: seastore_obj_data_write_amplification needs to be reconsidered because + * delta-based overwrite is introduced */ void evaluate_operations() { auto actual_write_size = get_pins_size(); -- 2.39.5