Add element acquire/release capabilities to rtree.

This makes it possible to acquire short-term "ownership" of rtree
elements so that it is possible to read an extent pointer *and* read the
extent's contents with a guarantee that the element will not be modified
until the ownership is released.  This is intended as a mechanism for
resolving rtree read/write races rather than as a way to lock extents.
This commit is contained in:
Jason Evans
2016-03-28 03:06:35 -07:00
parent f4a58847d3
commit 2d2b4e98c9
6 changed files with 302 additions and 135 deletions

View File

@@ -457,18 +457,24 @@ register_zone
rtree_child_read
rtree_child_read_hard
rtree_child_tryread
rtree_clear
rtree_delete
rtree_get
rtree_new
rtree_node_valid
rtree_set
rtree_elm_acquire
rtree_elm_lookup
rtree_elm_read
rtree_elm_read_acquired
rtree_elm_release
rtree_elm_write
rtree_elm_write_acquired
rtree_read
rtree_start_level
rtree_subkey
rtree_subtree_read
rtree_subtree_read_hard
rtree_subtree_tryread
rtree_val_read
rtree_val_write
rtree_write
run_quantize_ceil
run_quantize_floor
s2u