Memory-efficient object address mapping in a tiered data structure
First Claim
1. A method of managing a storage system having one or more storage devices, the method comprising:
- detecting a first request to perform a read operation of a first data object stored in a storage device of the storage system, the first request including first key information corresponding to the first data object;
locating a first entry for the first key information in a tiered data structure, the first entry including a first logical ID for a first leaf node corresponding to the first key information;
determining a first physical location of the first leaf node based on the first logical ID for the first leaf node using a secondary mapping table, the secondary mapping table being used to translate logical IDs for leaf nodes to physical locations of leaf nodes;
reading the first leaf node using the first physical location to obtain a leaf node map entry, the leaf node map entry including size of the first data object and a second physical location of the first data object;
reading from the second physical location to obtain the first data object;
receiving a second request to perform a write operation for a second data object to the storage device, the second request including second data to be written for the second data object and second key information corresponding to the second data object; and
in accordance with a determination that a second entry for the second key information is in a second leaf node of the tiered data structure;
accessing the second leaf node using the secondary mapping table, the second leaf node having (i) a second logical ID, (ii) a third physical location determined using the secondary mapping table, and (iii) a parent node in the tiered data structure; and
modifying content of the second leaf node in accordance with the second request to perform a write operation for the second data object, including;
writing the modified second leaf node to a fourth physical location different from the third physical location,updating a physical location corresponding to the second logical ID of the second leaf node in the secondary mapping table to the fourth physical location, while leaving unchanged the second logical ID of the second leaf node, to map the second logical ID of the second leaf node to the fourth physical location, andleaving unchanged the parent node of the second leaf node.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to perform memory-efficient mapping of block/object addresses. In one aspect, a method of managing a storage system having one or more storage devices includes a tiered data structure in which each node has a logical ID and entries in the nodes reference other nodes in the tiered data structure using the logical IDs. As a result, when a child node is updated and stored to a new location, but retains its logical ID, its parent node does not need to be updated, because the logical ID in the entry referencing the child node remains unchanged. Further, the storage system uses a secondary mapping table to translate the logical IDs to the corresponding physical locations of the corresponding nodes. Additionally, the secondary mapping table is cached in volatile memory, and as a result, the physical location of a required node is determined without accessing non-volatile memory.
41 Citations
21 Claims
-
1. A method of managing a storage system having one or more storage devices, the method comprising:
-
detecting a first request to perform a read operation of a first data object stored in a storage device of the storage system, the first request including first key information corresponding to the first data object; locating a first entry for the first key information in a tiered data structure, the first entry including a first logical ID for a first leaf node corresponding to the first key information; determining a first physical location of the first leaf node based on the first logical ID for the first leaf node using a secondary mapping table, the secondary mapping table being used to translate logical IDs for leaf nodes to physical locations of leaf nodes; reading the first leaf node using the first physical location to obtain a leaf node map entry, the leaf node map entry including size of the first data object and a second physical location of the first data object; reading from the second physical location to obtain the first data object; receiving a second request to perform a write operation for a second data object to the storage device, the second request including second data to be written for the second data object and second key information corresponding to the second data object; and in accordance with a determination that a second entry for the second key information is in a second leaf node of the tiered data structure; accessing the second leaf node using the secondary mapping table, the second leaf node having (i) a second logical ID, (ii) a third physical location determined using the secondary mapping table, and (iii) a parent node in the tiered data structure; and modifying content of the second leaf node in accordance with the second request to perform a write operation for the second data object, including; writing the modified second leaf node to a fourth physical location different from the third physical location, updating a physical location corresponding to the second logical ID of the second leaf node in the secondary mapping table to the fourth physical location, while leaving unchanged the second logical ID of the second leaf node, to map the second logical ID of the second leaf node to the fourth physical location, and leaving unchanged the parent node of the second leaf node. - 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 one or more 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 first request to perform a read operation of a first data object stored in a storage device of the storage system, the first request including first key information corresponding to the first data object; locating a first entry for the first key information in a tiered data structure, the first entry including a first logical ID for a first leaf node corresponding to the first key information; determining a first physical location of the first leaf node based on the first logical ID for the first leaf node using a secondary mapping table, the secondary mapping table being used to translate logical IDs for leaf nodes to physical locations of leaf nodes; reading the first leaf node using the first physical location to obtain a leaf node map entry, the leaf node map entry including size of the first data object and a second physical location of the first data object; reading from the second physical location to obtain the first data object; receiving a second request to perform a write operation for a second data object to the storage device, the second request including second data to be written for the second data object and second key information corresponding to the second data object; and in accordance with a determination that a second entry for the second key information is in a second leaf node of the tiered data structure; accessing the second leaf node using the secondary mapping table, the second leaf node having (i) a second logical ID, (ii) a third physical location determined using the secondary mapping table, and (iii) a parent node in the tiered data structure; and modifying content of the second leaf node in accordance with the second request to perform a write operation for the second data object, including; writing the modified second leaf node to a fourth physical location different from the third physical location, updating a physical location corresponding to the second logical ID of the second leaf node in the secondary mapping table to the fourth physical location, while leaving unchanged the second logical ID of the second leaf node, to map the second logical ID of the second leaf node to the fourth physical location, and leaving unchanged the parent node of the second leaf node. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A storage system, comprising:
-
one or more 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, the one or more subsystems comprising; means for detecting a first request to perform a read operation of a first data object stored in a storage device of the storage system, the first request including first key information corresponding to the first data object; means for locating a first entry for the first key information in a tiered data structure, the first entry including a first logical ID for a first leaf node corresponding to the first key information; means for determining a first physical location of the first leaf node based on the first logical ID for the first leaf node using a secondary mapping table, the secondary mapping table being used to translate logical IDs for leaf nodes to physical locations of leaf nodes; means for reading the first leaf node using the first physical location to obtain a leaf node map entry, the leaf node map entry including size of the first data object and a second physical location of the first data object; means for reading from the second physical location to obtain the first data object; means for receiving a second request to perform a write operation for a second data object to the storage device, the second request including second data to be written for the second data object and second key information corresponding to the second data object; and in accordance with a determination that a second entry for the second key information is in a second leaf node of the tiered data structure; means for accessing the second leaf node using the secondary mapping table, the second leaf node having (i) a second logical ID, (ii) a third physical location determined using the secondary mapping table, and (iii) a parent node in the tiered data structure; and means for modifying content of the second leaf node in accordance with the second request to perform a write operation for the second data object, including; means for writing the modified second leaf node to a fourth physical location different from the third physical location, means for updating a physical location corresponding to the second logical ID of the second leaf node in the secondary mapping table to the fourth physical location, and means for leaving unchanged the second logical ID of the second leaf node, to map the second logical ID of the second leaf node to the fourth physical location, and means for leaving unchanged the parent node of the second leaf node. - View Dependent Claims (21)
-
Specification