summaryrefslogtreecommitdiff
tag namebtree-bulk-loading_2019-11-22 (ca114ab5aed01c5cb501918abaca12a7894dd9ee)
tag date2019-11-22 21:35:47 -0800
tagged byDarrick J. Wong <darrick.wong@oracle.com>
tagged objectcommit f3ecbc486b...
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.