]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os: drop off omap_get_values with start 62530/head
authorchunmei liu <chunmei.liu@ibm.com>
Mon, 31 Mar 2025 21:27:52 +0000 (14:27 -0700)
committerchunmei liu <chunmei.liu@ibm.com>
Tue, 15 Jul 2025 03:38:35 +0000 (20:38 -0700)
Signed-off-by: chunmei liu <chunmei.liu@ibm.com>
src/crimson/os/alienstore/alien_store.cc
src/crimson/os/alienstore/alien_store.h
src/crimson/os/cyanstore/cyan_store.cc
src/crimson/os/cyanstore/cyan_store.h
src/crimson/os/futurized_store.h
src/crimson/os/seastore/seastore.cc
src/crimson/os/seastore/seastore.h

index 9ac25d8034e5643f52520c9966dc7ba8c3b331dc..c50fdc796d5ef3f5350eec45fea5af5e64be65e0 100644 (file)
@@ -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<string> &start,
-                                uint32_t op_flags)
-  -> read_errorator::future<std::tuple<bool, omap_values_t>>
-{
-  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<AlienCollection*>(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<std::tuple<bool, omap_values_t>> {
-      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<std::tuple<bool, omap_values_t>>(
-          true, std::move(values));
-      }
-    });
-  });
-}
-
 AlienStore::read_errorator::future<ObjectStore::omap_iter_ret_t>
 AlienStore::omap_iterate(CollectionRef ch,
                          const ghobject_t &oid,
index 2c3d2b2d02cab4d351d848dc9008e04972b4ca21..952f101254517bfd843b9045e0ff1cfb9c882658 100644 (file)
@@ -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<std::tuple<bool, omap_values_t>> omap_get_values(
-    CollectionRef c,           ///< [in] collection
-    const ghobject_t &oid,     ///< [in] oid
-    const std::optional<std::string> &start, ///< [in] start, empty for begin
-    uint32_t op_flags = 0
-    ) final; ///< @return <done, values> values.empty() iff done
-
   seastar::future<std::tuple<std::vector<ghobject_t>, ghobject_t>> list_objects(
     CollectionRef c,
     const ghobject_t& start,
index 73ec8bbc23404c11bcff7b0c6768a028325332db..9c3f5d6551cd606618b5a17c972bc3d38f7306b5 100644 (file)
@@ -390,29 +390,6 @@ auto CyanStore::Shard::omap_get_values(
   return seastar::make_ready_future<omap_values_t>(std::move(values));
 }
 
-auto CyanStore::Shard::omap_get_values(
-  CollectionRef ch,
-  const ghobject_t &oid,
-  const std::optional<string> &start,
-  uint32_t op_flags)
-  -> CyanStore::Shard::read_errorator::future<std::tuple<bool, omap_values_t>>
-{
-  auto c = static_cast<Collection*>(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::tuple<bool, omap_values_t>>(
-    std::make_tuple(true, std::move(values)));
-}
-
 auto CyanStore::Shard::omap_iterate(
   CollectionRef ch,
   const ghobject_t &oid,
index d5029d9e367540141e7651cf3050ff0d4084799f..f42aa63a4fe5a4aafae76ec485774b7f2d5b6b92 100644 (file)
@@ -72,13 +72,6 @@ public:
       const omap_keys_t& keys,
       uint32_t op_flags = 0) final;
 
-    read_errorator::future<std::tuple<bool, omap_values_t>> omap_get_values(
-      CollectionRef c,           ///< [in] collection
-      const ghobject_t &oid,     ///< [in] oid
-      const std::optional<std::string> &start, ///< [in] start, empty for begin
-      uint32_t op_flags = 0
-      ) final;
-
     read_errorator::future<ObjectStore::omap_iter_ret_t> omap_iterate(
       CollectionRef c,
       const ghobject_t &oid,
index c19d893fb39a7d8813d03477fe81f4508c70f8de..a3f63ff9d2b49f83bf0c0aa1d47f62e295b89b2e 100644 (file)
@@ -88,14 +88,6 @@ public:
       const omap_keys_t& keys,
       uint32_t op_flags = 0) = 0;
 
-    using omap_values_paged_t = std::tuple<bool, omap_values_t>;
-    virtual read_errorator::future<omap_values_paged_t> omap_get_values(
-      CollectionRef c,           ///< [in] collection
-      const ghobject_t &oid,     ///< [in] oid
-      const std::optional<std::string> &start, ///< [in] start, empty for begin
-      uint32_t op_flags = 0
-      ) = 0; ///< @return <done, values> values.empty() only if done
-
     /**
      * Iterate over object map with user-provided callable
      *
index f24dd51f054a83416cbd5a03d89de5752be87fe7..9c50fc69f0d7a2e90cec7902943e7fb40a0ca89c 100644 (file)
@@ -62,9 +62,6 @@ template <> struct fmt::formatter<crimson::os::seastore::op_type_t>
     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_values_paged_t>
-SeaStore::Shard::omap_get_values(
-  CollectionRef ch,
-  const ghobject_t &oid,
-  const std::optional<std::string> &start,
-  uint32_t op_flags)
-{
-  ++(shard_stats.read_num);
-  ++(shard_stats.pending_read_num);
-
-  return repeat_with_onode<omap_values_paged_t>(
-    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<ObjectStore::omap_iter_ret_t>
 SeaStore::Shard::omap_iterate(
   CollectionRef ch,
index e49533eff35a53879c3113db2e100deaa8c3b4da..6e6ee83595a462c29fc1f60640e2b46d1ba1b114 100644 (file)
@@ -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_values_paged_t> omap_get_values(
-      CollectionRef c,           ///< [in] collection
-      const ghobject_t &oid,     ///< [in] oid
-      const std::optional<std::string> &start, ///< [in] start, empty for begin
-      uint32_t op_flags = 0
-      ) final; ///< @return <done, values> values.empty() iff done
-
     read_errorator::future<ObjectStore::omap_iter_ret_t> 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<bool, omap_values_t>;
     base_iertr::future<omap_values_paged_t> omaptree_get_values(
       Transaction& t,
       omap_root_t&& root,