From 1642d487ecc8e405546378e41de6a196cabdadb8 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Tue, 18 Jun 2024 11:40:10 +0800 Subject: [PATCH] crimson/os/seastore: disable seastore_max_data_allocation_size by default Supposing that fine-grained-cache should address the read amplification issue. By-default disable seastore_max_data_allocation_size with fine-grained-cache since seastore_full_integrity_check is by-default disabled. Signed-off-by: Yingxin Cheng --- src/common/options/crimson.yaml.in | 4 ++-- src/crimson/os/seastore/extent_placement_manager.h | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/options/crimson.yaml.in b/src/common/options/crimson.yaml.in index 36b7f8bc1e335..69b3a61557688 100644 --- a/src/common/options/crimson.yaml.in +++ b/src/common/options/crimson.yaml.in @@ -105,8 +105,8 @@ options: - name: seastore_max_data_allocation_size type: size level: advanced - desc: Max size in bytes that an extent can be - default: 32_K + desc: Max size in bytes that an extent can be, 0 to disable + default: 0 - name: seastore_cache_lru_size type: size level: advanced diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index d400a9bbdc735..47fe71ae464f6 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -414,7 +414,10 @@ public: for (auto &ext : addrs) { auto left = ext.len; while (left > 0) { - auto len = std::min(max_data_allocation_size, left); + auto len = left; + if (max_data_allocation_size) { + len = std::min(max_data_allocation_size, len); + } auto bp = create_extent_ptr_zero(len); auto start = ext.start.is_delayed() ? ext.start -- 2.39.5