]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/os/seastore/omap: optimize merge policy 47643/head
authorXinyu Huang <xinyu.huang@intel.com>
Wed, 17 Aug 2022 04:19:24 +0000 (04:19 +0000)
committerXinyu Huang <xinyu.huang@intel.com>
Wed, 17 Aug 2022 08:42:35 +0000 (08:42 +0000)
commit5caf48396c72885613f7ed98630faa2c5d902964
tree7282183ac35a31b22bc51273d94e6f5c04bdfc32
parentf5143a2e114357f7ae4484f350c78a0b0612b061
crimson/os/seastore/omap: optimize merge policy

in some corner cases on single key erase sence,
for e.g. we have three nodes which are brothers:
1 2 3 4 5 | 6 7 8 | 9 10 11, node min size is 3.
When erasing 11 will trigger balance instead of
merge, the middle nodes will adjust to 6 7, this
will not ensure the all nodes above min size.
This corner case might not be harmful but if we
want to erase 10,11 at one time (range remove wip
need this), this will trigger balance in past
policy which will make both two nodes below min
size and we might need at least one more merge.
This is actually because we cannot ensure a node
to merge in tree is above min size.

Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
src/crimson/os/seastore/omap_manager/btree/omap_btree_node.h
src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc
src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h
src/crimson/os/seastore/omap_manager/btree/string_kv_node_layout.h