]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/onode-staged-tree: try merge peer if node has one value
authorYingxin Cheng <yingxin.cheng@intel.com>
Wed, 26 May 2021 04:45:27 +0000 (12:45 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Fri, 11 Jun 2021 14:43:47 +0000 (22:43 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/onode_manager/staged-fltree/node.cc

index 66fb3731279ff98269724a1ef11561fc3433d7fa..9fcd950107eaf1ba563498362cdc4bd8a35a5292 100644 (file)
@@ -517,7 +517,9 @@ Node::try_merge_adjacent(
   impl->validate_non_empty();
   assert(!is_root());
   if constexpr (!FORCE_MERGE) {
-    if (!impl->is_size_underflow()) {
+    if (!impl->is_size_underflow() &&
+        !impl->has_single_value()) {
+      // skip merge
       if (update_parent_index) {
         return fix_parent_index(c, std::move(this_ref), false);
       } else {