tag name | btree-bulk-loading_2020-03-10 (1ef4f2a02c5af3f0ebf2164d69e97c9a9ace001a) |
tag date | 2020-03-10 17:43:03 -0700 |
tagged by | Darrick J. Wong <darrick.wong@oracle.com> |
tagged object | commit 936ccdc5fc... |
xfs: btree bulk loading
This series creates a bulk loading function for metadata btree cursors.
We start by creating the idea of a "fake root" for each of the btree
root types (AG header and inode) so that we can use a special btree
cursor to stage a new btree without altering anything that might already
exist.
Next, we add utility functions to compute the desired btree shape for a
given number of records, load records into new leaf blocks, compute the
node blocks from that, and present the new root ready for commit.
Finally we extend all four per-AG btree cursor types to support staging
cursors and therefore bulk loading. This will be used by upcoming patch
series to implement online repair and refactor offline repair.
For v4, fix a lot of review comments from Brian Foster, most of which
relate to disentangling thornier parts of the code; and clarifying the
documentation so that someone other than the author can understand what
is going on here. :)