Coalescing Metadata and Data Writes via Write Serialization with Device-Level Address Remapping
First Claim
1. A method of managing a storage system having a plurality of storage devices, the method comprising:
- detecting a request to perform a write operation for a data object to the storage system, wherein the write operation includes a first write of updated mapping information to a tiered data structure, the tiered data structure used to translate a key associated with the data object to a physical location of the data object in the storage system, and a second write of data to be written for the data object;
creating a serialization segment in a memory, distinct from the plurality of storage devices, wherein creating the serialization segment includes;
coalescing valid data in the serialization segment, including;
for each contiguous sequence of valid logical addresses in the serialization segment, sending instructions from the host system to one or more storage devices of the plurality of storage devices to move data corresponding to the respective contiguous sequence of valid logical addresses; and
repacking valid logical addresses in the serialization segment to a beginning of the serialization segment;
accumulating, in the serialization segment, the first write of updated mapping information to the tiered data structure and the second write of the data to be written; and
writing, in a single contiguous write, contents of the serialization segment, other than the coalesced valid data, to one or more storage devices of the plurality of storage devices of the storage system.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to coalesce metadata and data writes via write serialization with device-level address remapping. In one aspect, a method of managing a storage system having one or more storage devices includes a serialized write operation to the storage system, in which a serialization segment accumulates data objects and mapping information until the segment is full, at which time the serialization segment is written to the storage system in a single contiguous write. As a result, the number of I/O operations is decreased from a minimum of two (one to write data and one to write updated mapping information) to a single write operation. Further, if the serialization segment contains existing valid data prior to accumulating data objects and mapping information, the valid data is moved to the beginning of the serialization segment using either a remap or xcopy operation.
-
Citations
20 Claims
-
1. A method of managing a storage system having a plurality of storage devices, the method comprising:
-
detecting a request to perform a write operation for a data object to the storage system, wherein the write operation includes a first write of updated mapping information to a tiered data structure, the tiered data structure used to translate a key associated with the data object to a physical location of the data object in the storage system, and a second write of data to be written for the data object; creating a serialization segment in a memory, distinct from the plurality of storage devices, wherein creating the serialization segment includes; coalescing valid data in the serialization segment, including; for each contiguous sequence of valid logical addresses in the serialization segment, sending instructions from the host system to one or more storage devices of the plurality of storage devices to move data corresponding to the respective contiguous sequence of valid logical addresses; and repacking valid logical addresses in the serialization segment to a beginning of the serialization segment; accumulating, in the serialization segment, the first write of updated mapping information to the tiered data structure and the second write of the data to be written; and writing, in a single contiguous write, contents of the serialization segment, other than the coalesced valid data, to one or more storage devices of the plurality of storage devices of the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A host system, comprising:
-
an interface for operatively coupling to a storage system having a plurality of storage devices; one or more processors; and controller memory storing one or more programs, which when executed by the one or more processors cause the host system to perform operations comprising; detecting a request to perform a write operation for a data object to the storage system, wherein the write operation includes a first write of updated mapping information to a tiered data structure, the tiered data structure used to translate a key associated with the data object to a physical location of the data object in the storage system, and a second write of data to be written for the data object; creating a serialization segment in a memory, distinct from the plurality of storage devices, wherein creating the serialization segment includes; coalescing valid data in the serialization segment, including; for each contiguous sequence of valid logical addresses in the serialization segment, sending instructions from the host system to one or more storage devices of the plurality of storage devices to move data corresponding to the respective contiguous sequence of valid logical addresses; and repacking valid logical addresses in the serialization segment to a beginning of the serialization segment; accumulating, in the serialization segment, the first write of updated mapping information to the tiered data structure and the second write of the data to be written; and writing, in a single contiguous write, contents of the serialization segment, other than the coalesced valid data, to one or more storage devices of the plurality of storage devices of the storage system. - View Dependent Claims (15)
-
-
16. A storage system, comprising:
-
a plurality of storage devices; one or more subsystems having one or more processors; and memory storing one or more programs, which when executed by the one or more processors cause the one or more subsystems to perform operations comprising; detecting a request to perform a write operation for a data object to the storage system, wherein the write operation includes a first write of updated mapping information to a tiered data structure, the tiered data structure used to translate a key associated with the data object to a physical location of the data object in the storage system, and a second write of data to be written for the data object; creating a serialization segment in a memory, distinct from the plurality of storage devices, wherein creating the serialization segment includes; coalescing valid data in the serialization segment, including; for each contiguous sequence of valid logical addresses in the serialization segment, sending instructions from the host system to one or more storage devices of the plurality of storage devices to move data corresponding to the respective contiguous sequence of valid logical addresses; and repacking valid logical addresses in the serialization segment to a beginning of the serialization segment; accumulating, in the serialization segment, the first write of updated mapping information to the tiered data structure and the second write of the data to be written; and writing, in a single contiguous write, contents of the serialization segment, other than the coalesced valid data, to one or more storage devices of the plurality of storage devices of the storage system. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage system, the one or more programs including instructions that when executed by the one or more processors cause the storage system to perform a set of operations comprising:
-
detecting a request to perform a write operation for a data object to the storage system, wherein the write operation includes a first write of updated mapping information to a tiered data structure, the tiered data structure used to translate a key associated with the data object to a physical location of the data object in the storage system, and a second write of data to be written for the data object; creating a serialization segment in a memory, distinct from the plurality of storage devices, wherein creating the serialization segment includes; coalescing valid data in the serialization segment, including; for each contiguous sequence of valid logical addresses in the serialization segment, sending instructions from the host system to one or more storage devices of the plurality of storage devices to move data corresponding to the respective contiguous sequence of valid logical addresses; and repacking valid logical addresses in the serialization segment to a beginning of the serialization segment; accumulating, in the serialization segment, the first write of updated mapping information to the tiered data structure and the second write of the data to be written; and writing, in a single contiguous write, contents of the serialization segment, other than the coalesced valid data, to one or more storage devices of the plurality of storage devices of the storage system.
-
Specification