]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
crimson: add node implementation for onode tree
authorKefu Chai <kchai@redhat.com>
Fri, 15 May 2020 16:38:41 +0000 (00:38 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 9 Jun 2020 01:39:47 +0000 (09:39 +0800)
commit5e1625781c7e953a686d85696961768cef0fcea6
tree1571e237672248bcf787df8f4e2511778f913e41
parent878510aacc575880c8a26b7b65aa5b827976a670
crimson: add node implementation for onode tree

* node_t and friends are representations of in-mem and on-disk onode
  block/page/node. it might have different names in different contexts.
  but normally, they are the same thing and are loaded as a logical
  cached extent.
* delta_t holds the mutations against a given node onode. they are
  applied to memory once they are committed to disk as part of the
  log record.

regarding to the name of "simple-fltree", it is a short for simple
Flexible Layout Fixed Tree, which was designed by Samuel Just. My
implementation is a naive implementation of this design. But it
tries to be extensive and should be able to adapt to different policies
for rebalancing nodes when overflow/underflow. But there could be
other variant of flexible layout tree implementations in future,
so i added "simple" prefix.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/os/seastore/CMakeLists.txt
src/crimson/os/seastore/onode_manager/simple-fltree/onode_delta.cc [new file with mode: 0644]
src/crimson/os/seastore/onode_manager/simple-fltree/onode_delta.h [new file with mode: 0644]
src/crimson/os/seastore/onode_manager/simple-fltree/onode_node.cc [new file with mode: 0644]
src/crimson/os/seastore/onode_manager/simple-fltree/onode_node.h [new file with mode: 0644]
src/test/crimson/seastore/CMakeLists.txt
src/test/crimson/seastore/onode_tree/CMakeLists.txt [new file with mode: 0644]
src/test/crimson/seastore/onode_tree/test_node.cc [new file with mode: 0644]