N-way merge technique for updating volume metadata in a storage I/O stack
First Claim
1. A system comprising:
- a central processing unit (CPU) adapted to execute a storage input/output (I/O) stack;
one or more solid state devices (SSDs) coupled to the CPU; and
a memory coupled to the CPU and configured to store the storage I/O stack, the memory further configured to store one or more dense tree metadata structures wherein each dense tree metadata structure has at least three adjacent levels, each level of each dense tree metadata structure including metadata entries for storing metadata embodied as mappings from offset ranges of a logical unit (LUN) to keys, the storage I/O stack configured to merge the mappings of the adjacent levels in a single merge iteration when at least one of the adjacent levels exceeds an amount of fullness.
0 Assignments
0 Petitions
Accused Products
Abstract
A N-way merge technique efficiently updates metadata in accordance with a N-way merge operation managed by a volume layer of a storage input/output (I/O) stack executing on one or more nodes of a cluster. The metadata is embodied as mappings from logical block addresses (LBAs) of a logical unit (LUN) accessible by a host to durable extent keys, and is organized as a multi-level dense tree. The mappings are organized such that a higher level of the dense tree contains more recent mappings than a next lower level, i.e., the level immediately below. The N-way merge operation is an efficient (i.e., optimized) way of updating the volume metadata mappings of the dense tree by merging the mapping content of all three levels in a single iteration, as opposed to merging the content of the first level with the content of the second level in a first iteration of a two-way merge operation and then merging the results of the first iteration with the content of the third level in a second iteration of the operation.
612 Citations
20 Claims
-
1. A system comprising:
-
a central processing unit (CPU) adapted to execute a storage input/output (I/O) stack; one or more solid state devices (SSDs) coupled to the CPU; and a memory coupled to the CPU and configured to store the storage I/O stack, the memory further configured to store one or more dense tree metadata structures wherein each dense tree metadata structure has at least three adjacent levels, each level of each dense tree metadata structure including metadata entries for storing metadata embodied as mappings from offset ranges of a logical unit (LUN) to keys, the storage I/O stack configured to merge the mappings of the adjacent levels in a single merge iteration when at least one of the adjacent levels exceeds an amount of fullness. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
storing one or more dense tree metadata structures in a memory coupled to a processor of a storage system, wherein each dense tree metadata structure has at least three adjacent levels, each level of each dense tree metadata structure including metadata entries for storing metadata embodied as mappings from offset ranges of a logical unit (LUN) to keys; and merging the mappings of the adjacent levels in a single merge iteration when at least one of the adjacent levels exceeds an amount of fullness. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium including program instructions for execution on a processor of a storage system, the program instructions configured to:
-
store one or more dense tree metadata structures in a memory of the storage system, wherein each dense tree metadata structure has at least three adjacent levels, each level of each dense tree metadata structure including metadata entries for storing metadata embodied as mappings from offset ranges of a logical unit (LUN) to keys; and merge the mappings of the adjacent levels in a single merge iteration when at least one of the adjacent levels exceeds an amount of fullness.
-
Specification