From aa2f60642dfdf3fccbf177d3cbce83b455f60c01 Mon Sep 17 00:00:00 2001 From: chunmei liu Date: Mon, 31 Mar 2025 14:27:52 -0700 Subject: [PATCH] crimson/os: drop off omap_get_values with start Signed-off-by: chunmei liu --- src/crimson/os/alienstore/alien_store.cc | 41 ------------------------ src/crimson/os/alienstore/alien_store.h | 8 ----- src/crimson/os/cyanstore/cyan_store.cc | 23 ------------- src/crimson/os/cyanstore/cyan_store.h | 7 ---- src/crimson/os/futurized_store.h | 8 ----- src/crimson/os/seastore/seastore.cc | 32 ------------------ src/crimson/os/seastore/seastore.h | 10 +----- 7 files changed, 1 insertion(+), 128 deletions(-) diff --git a/src/crimson/os/alienstore/alien_store.cc b/src/crimson/os/alienstore/alien_store.cc index 9ac25d8034e56..c50fdc796d5ef 100644 --- a/src/crimson/os/alienstore/alien_store.cc +++ b/src/crimson/os/alienstore/alien_store.cc @@ -424,47 +424,6 @@ auto AlienStore::omap_get_values(CollectionRef ch, }); } -auto AlienStore::omap_get_values(CollectionRef ch, - const ghobject_t &oid, - const std::optional &start, - uint32_t op_flags) - -> read_errorator::future> -{ - logger().debug("{} with_start", __func__); - assert(tp); - return do_with_op_gate(omap_values_t{}, [=, this] (auto &values) { - return tp->submit(ch->get_cid().hash_to_shard(tp->size()), [=, this, &values] { - auto c = static_cast(ch.get()); - return store->omap_iterate( - c->collection, oid, - ObjectStore::omap_iter_seek_t{ - .seek_position = start.value_or(std::string{}), - // FIXME: classical OSDs begins iteration from LOWER_BOUND - // (or UPPER_BOUND if filter_prefix > start). However, these - // bits are not implemented yet - .seek_type = ObjectStore::omap_iter_seek_t::UPPER_BOUND - }, - [&values] - (std::string_view key, std::string_view value) mutable { - values[std::string{key}].append(value); - // FIXME: there is limit on number of entries yet - return ObjectStore::omap_iter_ret_t::NEXT; - }); - }).then([&values] (int r) - -> read_errorator::future> { - if (r == -ENOENT) { - return crimson::ct_error::enoent::make(); - } else if (r < 0){ - logger().error("omap_get_values(start): {}", r); - return crimson::ct_error::input_output_error::make(); - } else { - return read_errorator::make_ready_future>( - true, std::move(values)); - } - }); - }); -} - AlienStore::read_errorator::future AlienStore::omap_iterate(CollectionRef ch, const ghobject_t &oid, diff --git a/src/crimson/os/alienstore/alien_store.h b/src/crimson/os/alienstore/alien_store.h index 2c3d2b2d02cab..952f101254517 100644 --- a/src/crimson/os/alienstore/alien_store.h +++ b/src/crimson/os/alienstore/alien_store.h @@ -66,14 +66,6 @@ public: const omap_keys_t& keys, uint32_t op_flags = 0) final; - /// Retrieves paged set of values > start (if present) - read_errorator::future> omap_get_values( - CollectionRef c, ///< [in] collection - const ghobject_t &oid, ///< [in] oid - const std::optional &start, ///< [in] start, empty for begin - uint32_t op_flags = 0 - ) final; ///< @return values.empty() iff done - seastar::future, ghobject_t>> list_objects( CollectionRef c, const ghobject_t& start, diff --git a/src/crimson/os/cyanstore/cyan_store.cc b/src/crimson/os/cyanstore/cyan_store.cc index 73ec8bbc23404..9c3f5d6551cd6 100644 --- a/src/crimson/os/cyanstore/cyan_store.cc +++ b/src/crimson/os/cyanstore/cyan_store.cc @@ -390,29 +390,6 @@ auto CyanStore::Shard::omap_get_values( return seastar::make_ready_future(std::move(values)); } -auto CyanStore::Shard::omap_get_values( - CollectionRef ch, - const ghobject_t &oid, - const std::optional &start, - uint32_t op_flags) - -> CyanStore::Shard::read_errorator::future> -{ - auto c = static_cast(ch.get()); - logger().debug("{} {} {}", __func__, c->get_cid(), oid); - auto o = c->get_object(oid); - if (!o) { - return crimson::ct_error::enoent::make(); - } - omap_values_t values; - for (auto i = start ? o->omap.upper_bound(*start) : o->omap.begin(); - i != o->omap.end(); - ++i) { - values.insert(*i); - } - return seastar::make_ready_future>( - std::make_tuple(true, std::move(values))); -} - auto CyanStore::Shard::omap_iterate( CollectionRef ch, const ghobject_t &oid, diff --git a/src/crimson/os/cyanstore/cyan_store.h b/src/crimson/os/cyanstore/cyan_store.h index d5029d9e36754..f42aa63a4fe5a 100644 --- a/src/crimson/os/cyanstore/cyan_store.h +++ b/src/crimson/os/cyanstore/cyan_store.h @@ -72,13 +72,6 @@ public: const omap_keys_t& keys, uint32_t op_flags = 0) final; - read_errorator::future> omap_get_values( - CollectionRef c, ///< [in] collection - const ghobject_t &oid, ///< [in] oid - const std::optional &start, ///< [in] start, empty for begin - uint32_t op_flags = 0 - ) final; - read_errorator::future omap_iterate( CollectionRef c, const ghobject_t &oid, diff --git a/src/crimson/os/futurized_store.h b/src/crimson/os/futurized_store.h index c19d893fb39a7..a3f63ff9d2b49 100644 --- a/src/crimson/os/futurized_store.h +++ b/src/crimson/os/futurized_store.h @@ -88,14 +88,6 @@ public: const omap_keys_t& keys, uint32_t op_flags = 0) = 0; - using omap_values_paged_t = std::tuple; - virtual read_errorator::future omap_get_values( - CollectionRef c, ///< [in] collection - const ghobject_t &oid, ///< [in] oid - const std::optional &start, ///< [in] start, empty for begin - uint32_t op_flags = 0 - ) = 0; ///< @return values.empty() only if done - /** * Iterate over object map with user-provided callable * diff --git a/src/crimson/os/seastore/seastore.cc b/src/crimson/os/seastore/seastore.cc index f24dd51f054a8..9c50fc69f0d7a 100644 --- a/src/crimson/os/seastore/seastore.cc +++ b/src/crimson/os/seastore/seastore.cc @@ -62,9 +62,6 @@ template <> struct fmt::formatter case op_type_t::OMAP_GET_VALUES: name = "omap_get_values"; break; - case op_type_t::OMAP_GET_VALUES2: - name = "omap_get_values2"; - break; case op_type_t::OMAP_ITERATE: name = "omap_iterate"; break; @@ -166,7 +163,6 @@ void SeaStore::Shard::register_metrics() {op_type_t::GET_ATTRS, sm::label_instance("latency", "GET_ATTRS")}, {op_type_t::STAT, sm::label_instance("latency", "STAT")}, {op_type_t::OMAP_GET_VALUES, sm::label_instance("latency", "OMAP_GET_VALUES")}, - {op_type_t::OMAP_GET_VALUES2, sm::label_instance("latency", "OMAP_GET_VALUES2")}, {op_type_t::OMAP_ITERATE, sm::label_instance("latency", "OMAP_ITERATE")}, }; @@ -1430,34 +1426,6 @@ SeaStore::Shard::omap_get_values( }); } -SeaStore::Shard::read_errorator::future -SeaStore::Shard::omap_get_values( - CollectionRef ch, - const ghobject_t &oid, - const std::optional &start, - uint32_t op_flags) -{ - ++(shard_stats.read_num); - ++(shard_stats.pending_read_num); - - return repeat_with_onode( - ch, - oid, - Transaction::src_t::READ, - "omap_get_values2", - op_type_t::OMAP_GET_VALUES2, - op_flags, - [this, start](auto &t, auto &onode) - { - auto root = select_log_omap_root(onode); - return omaptree_get_values( - t, std::move(root), start); - }).finally([this] { - assert(shard_stats.pending_read_num); - --(shard_stats.pending_read_num); - }); -} - SeaStore::Shard::read_errorator::future SeaStore::Shard::omap_iterate( CollectionRef ch, diff --git a/src/crimson/os/seastore/seastore.h b/src/crimson/os/seastore/seastore.h index e49533eff35a5..6e6ee83595a46 100644 --- a/src/crimson/os/seastore/seastore.h +++ b/src/crimson/os/seastore/seastore.h @@ -42,7 +42,6 @@ enum class op_type_t : uint8_t { GET_ATTRS, STAT, OMAP_GET_VALUES, - OMAP_GET_VALUES2, OMAP_ITERATE, MAX }; @@ -140,14 +139,6 @@ public: const omap_keys_t& keys, uint32_t op_flags = 0) final; - /// Retrieves paged set of values > start (if present) - read_errorator::future omap_get_values( - CollectionRef c, ///< [in] collection - const ghobject_t &oid, ///< [in] oid - const std::optional &start, ///< [in] start, empty for begin - uint32_t op_flags = 0 - ) final; ///< @return values.empty() iff done - read_errorator::future omap_iterate( CollectionRef c, const ghobject_t &oid, @@ -514,6 +505,7 @@ public: omap_root_t&& root, const omap_keys_t& keys) const; + using omap_values_paged_t = std::tuple; base_iertr::future omaptree_get_values( Transaction& t, omap_root_t&& root, -- 2.39.5