1. A method for dynamically partitioning a B-tree data structure, the method comprising: determining if the B-tree data structure requires a partition; establishing a midpoint of the B-tree data structure; establishing a write lock of the B-tree data structure; migrating from a beginning of the B-tree data structure to the midpoint of the B-tree data structure to a first B-tree data structure; migrating from the midpoint of the B-tree data structure to an end of the B-tree data structure to a second B-tree data structure; allowing normal operations on the B-tree data structure during migration; and releasing the write lock of the B-tree data structure.