Zach Brown 0b15cfe7f8 scoutfs: split on btree deletion
We were getting asserts during deletion that insertion while updating a
parent item didn't have enough room in the block.

Our btree has variable length keys.  During a merge it's possible that
the items moved between the blocks can result in the final key of a
block changing from a small key to a large key.  To update the parent
ref the parent block must have as much free space as the difference in
the key sizes.

We ensure free space in parents during descent by trying to split the
block.  Deletion wasn't doing that, it was only trying to merge blocks.
We need to try to split as well as merge during deletion.

And we have to update the merge threshold so that we don't just split
the resulting block again if it doesn't have the min free space for a
new parent item.

Signed-off-by: Zach Brown <zab@versity.com>
2017-09-19 21:19:25 -07:00
2017-09-19 21:19:25 -07:00
Description
No description provided
8 MiB
Languages
C 87%
Shell 9.3%
Roff 2.5%
TeX 0.8%
Makefile 0.4%