]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "kv/RocksDBStore: simplify RocksDBStore::get_cf_handle(string, IteratorBounds)"
authorNeha Ojha <nojha@redhat.com>
Thu, 28 Apr 2022 21:59:23 +0000 (21:59 +0000)
committerNeha Ojha <nojha@redhat.com>
Fri, 29 Apr 2022 15:05:08 +0000 (15:05 +0000)
This reverts commit a1f40617a3d2c83bfd5e1c957d7cff13150d00c7.

Caused a regression https://tracker.ceph.com/issues/55444

Signed-off-by: Neha Ojha <nojha@redhat.com>
src/kv/RocksDBStore.cc

index 4c079d3d2333ab48875a74eee86bc02378e27337..d7a5ee707047dcfad4f0bfc45dd6b4840a6170c9 100644 (file)
@@ -675,18 +675,21 @@ rocksdb::ColumnFamilyHandle *RocksDBStore::get_cf_handle(const std::string& pref
     return nullptr;
   }
   auto iter = cf_handles.find(prefix);
-  ceph_assert(iter != cf_handles.end());
-  ceph_assert(iter->second.handles.size() != 1);
-  if (iter->second.hash_l != 0) {
+  if (iter == cf_handles.end() || iter->second.hash_l != 0) {
     return nullptr;
-  }
-  auto lower_bound_hash_str = get_key_hash_view(iter->second, bounds.lower_bound->data(), bounds.lower_bound->size());
-  auto upper_bound_hash_str = get_key_hash_view(iter->second, bounds.upper_bound->data(), bounds.upper_bound->size());
-  if (lower_bound_hash_str == upper_bound_hash_str) {
-    auto key = *bounds.lower_bound;
-    return get_key_cf(iter->second, key.data(), key.size());
   } else {
-    return nullptr;
+    if (iter->second.handles.size() == 1) {
+      return iter->second.handles[0];
+    } else {
+      auto lower_bound_hash_str = get_key_hash_view(iter->second, bounds.lower_bound->data(), bounds.lower_bound->size());
+      auto upper_bound_hash_str = get_key_hash_view(iter->second, bounds.upper_bound->data(), bounds.upper_bound->size());
+      if (lower_bound_hash_str == upper_bound_hash_str) {
+        auto key = *bounds.lower_bound;
+        return get_key_cf(iter->second, key.data(), key.size());
+      } else {
+        return nullptr;
+      }
+    }
   }
 }