Extent metadata update logging and checkpointing
Abstract
In one embodiment, an extent store layer of a storage input/output (I/O) stack executing on one or more nodes of a cluster manages efficient logging and checkpointing of metadata. The metadata managed by the extent store layer, i.e., the extent store metadata, resides in a memory (in-core) of each node and is illustratively organized as a key-value extent store embodied as one or more data structures, e.g., a set of hash tables. Changes to the set of hash tables are recorded as a continuous stream of changes to SSD embodied as an extent store layer log. A separate log stream structure (e.g., an in-core buffer) may be associated respectively with each hash table such that changed (i.e., dirtied) slots of the hash table are recorded as entries in the log stream structure. The hash tables are written to SSD using a fuzzy checkpointing technique.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
receiving a write request, the write request having an extent, the write request processed at a storage system having a processor and a memory, the storage system coupled to one or more storage devices; applying a hash function to the extent to generate a table index; storing a portion of the table index in a first slot of a table, the table stored in the memory, the first slot including a location of the extent on the one or more storage devices; recording the first slot in a first log written to the one or more storage devices; initiating a first checkpoint operation to record the table in a checkpoint file to the one or more storage devices; determining whether the first checkpoint operation is complete; and in response to determining that the first checkpoint operation is incomplete during reboot of the storage system, recovering the first slot of the table from the first log.
2 . The method of claim 1 further comprising:
in response to determining that that the first checkpoint operation is complete during reboot of the storage system, recovering the first slot of the table from the checkpoint file.
3 . The method of claim 1 further comprises:
in response to determining that the first checkpoint operation is complete, recording the first slot in a second log written to the one or more storage devices.
4 . The method of claim 3 wherein determining that the first checkpoint operation is complete further comprises:
recovering the first slot of the table from the second log during reboot of the storage system.
5 . The method of claim 3 further comprising:
initiating a second checkpoint operation to record the table in the checkpoint file to the one or more storage devices; and
recovering a second slot of the table from the first log during reboot of the storage system, wherein the second slot changes during the first checkpoint operation.
6 . The method of claim 2 wherein the first slot is recovered by demand paging of the checkpoint file.
7 . The method of claim 2 wherein the first slot is recovered by a background process filling the table.
8 . The method of claim 5 further comprising:
in response to determining that the second checkpoint operation is complete, discarding a portion of the checkpoint file corresponding to the first checkpoint operation.
9 . The method of claim 3 wherein the first checkpoint operation is initiated when a number of changed slots of the table exceeds a threshold.
10 . The method of claim 1 wherein the one or more storage devices comprise flash storage devices.
11 . A storage system having a memory connected to a processor via a bus, the storage system comprising:
a storage array coupled to the storage system and having one or more solid state drives (SSDs); a storage I/O stack executing on the processor of the storage system, the storage I/O stack when executed operable to:
receive a write request, the write request having an extent;
apply a hash function to the extent to generate a table index;
store a portion of the table index in a first slot of a table, the table stored in the memory, the first slot including a location of the extent on the one or more SSDs;
record the first slot in a first log written to the one or more SSDs;
initiate a first checkpoint operation to record the table in a checkpoint file to the one or more SSDs;
determine whether the first checkpoint operation is complete; and
in response to determining that the first checkpoint operation is incomplete during reboot of the storage system, recover the first slot of the table from the first log.
12 . The storage system of claim 11 wherein the storage I/O stack when executed is further operable to:
in response to determining that that the first checkpoint operation is complete during reboot of the storage system, recover the first slot of the table from the checkpoint file.
13 . The storage system of claim 11 wherein the storage I/O stack when executed is further operable to:
in response to determining that the first checkpoint operation is complete, record the first slot in a second log written to the one or more SSDs.
14 . The storage system of claim 13 wherein the storage I/O stack when executed to determine that the first checkpoint operation is complete is further operable to:
recover the first slot of the table from the second log during reboot of the storage system.
15 . The storage system of claim 13 wherein the storage I/O stack when executed is further operable to:
initiate a second checkpoint operation to record the table in the checkpoint file to the one or more SSDs; and
recover a second slot of the table from the first log during reboot of the storage system, wherein the second slot changes during the first checkpoint operation.
16 . The storage system of claim 12 wherein the first slot is recovered by demand paging of the checkpoint file.
17 . The storage system of claim 12 wherein the first slot is recovered by a background process filling the table.
18 . The storage system of claim 15 wherein the storage I/O stack when executed is further operable to:
in response to determining that the second checkpoint operation is complete, discard a portion of the checkpoint file corresponding to the first checkpoint operation.
19 . The storage system of claim 13 wherein the first checkpoint operation is initiated when a number of changed slots of the table exceeds a threshold.
20 . A storage system having a memory connected to a processor via a bus, the storage system comprising:
a storage array coupled to the storage system and having one or more solid state drives (SSDs); a storage I/O stack executing on the processor of the storage system, the storage I/O stack when executed operable to:
receive a write request, the write request having an extent;
apply a hash function to the extent to generate a table index;
store a portion of the table index in a slot of a table, the table stored in the memory, the slot including a location of the extent on the one or more SSDs;
record the slot in a log written to the one or more SSDs;
initiate a checkpoint operation to record the table in a checkpoint file to the one or more SSDs;
determine whether the checkpoint operation is complete; and
in response to determining that the checkpoint operation is incomplete during reboot of the storage system, recover the slot of the table from the log.Join the waitlist — get patent alerts
Track US2016132396A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.