Methods and Systems for Performing Efficient Snapshots in Tiered Data Structures
First Claim
1. A method of managing a datastore storing one or more tiered data structures, comprising:
- at a memory controller with one or more processors, wherein the memory controller is operatively coupled with the datastore;
detecting a request to perform an update operation of a first data object in a tiered data structure of the one or more tiered data structures stored in the datastore, the request includes first key information corresponding to the first data object and a new value for the first data object;
locating the first data object using a key-map to map the first key information to a location of the first data object in the datastore;
identifying a sequence number associated with the first data object;
in accordance with a first determination that the sequence number associated with the first data object is greater than a first boundary sequence number corresponding to a first snapshot of the tiered data structure;
replacing the first data object in the tiered data structure with a modified first data object including the first key information and the new value; and
assigning the modified first object a unique sequence number; and
in accordance with a second determination that the sequence number associated with the first data object is less than or equal to the first boundary sequence number corresponding to the first snapshot of the tiered data structure;
while maintaining the first data object in the tiered data structure, inserting a second data object into the tiered data structure, the second data object including the first key information and the new value; and
assigning the second data object the unique sequence number.
4 Assignments
0 Petitions
Accused Products
Abstract
A memory controller detects a request, with a key to a data object and a value, to perform an operation. The memory controller locates the data object by mapping the key to a location of the data object in a tiered data structure and identifies a sequence number of the data object. When the sequence number of the data object is greater than a sequence number of a snapshot of the tiered data structure, the memory controller replaces the data object with a modified data object, including the key and the value, and assigns the modified object a unique sequence number. When the sequence number of the data object is less than the sequence number of the snapshot, the memory controller inserts a new data object, including the key and the value, into the tiered data structure and assigns the new data object the unique sequence number.
47 Citations
20 Claims
-
1. A method of managing a datastore storing one or more tiered data structures, comprising:
-
at a memory controller with one or more processors, wherein the memory controller is operatively coupled with the datastore; detecting a request to perform an update operation of a first data object in a tiered data structure of the one or more tiered data structures stored in the datastore, the request includes first key information corresponding to the first data object and a new value for the first data object; locating the first data object using a key-map to map the first key information to a location of the first data object in the datastore; identifying a sequence number associated with the first data object; in accordance with a first determination that the sequence number associated with the first data object is greater than a first boundary sequence number corresponding to a first snapshot of the tiered data structure; replacing the first data object in the tiered data structure with a modified first data object including the first key information and the new value; and assigning the modified first object a unique sequence number; and in accordance with a second determination that the sequence number associated with the first data object is less than or equal to the first boundary sequence number corresponding to the first snapshot of the tiered data structure; while maintaining the first data object in the tiered data structure, inserting a second data object into the tiered data structure, the second data object including the first key information and the new value; and assigning the second data object the unique sequence number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A data storage system, comprising:
-
a datastore storing one or more tiered data structures; and a memory controller with one or more processors, memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for; detecting a request to perform an update operation of a first data object in a tiered data structure of the one or more tiered data structures stored in the datastore, the request includes first key information corresponding to the first data object and a new value for the first data object; locating the first data object using a key-map to map the first key information to a location of the first data object in the datastore; identifying a sequence number associated with the first data object; in accordance with a first determination that the sequence number associated with the first data object is greater than a first boundary sequence number corresponding to a first snapshot of the tiered data structure; replacing the first data object in the tiered data structure with a modified first data object including the first key information and the new value; and assigning the modified first object a unique sequence number; and in accordance with a second determination that the sequence number associated with the first data object is less than or equal to the first boundary sequence number corresponding to the first snapshot of the tiered data structure; while maintaining the first data object in the tiered data structure, inserting a second data object into the tiered data structure, the second data object including the first key information and the new value; and assigning the second data object the unique sequence number. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a memory controller with one or more processors, cause the memory controller to:
-
detect a request to perform an update operation of a first data object in a tiered data structure of one or more tiered data structures stored in a datastore, the request includes first key information corresponding to the first data object and a new value for the first data object; locate the first data object using a key-map to map the first key information to a location of the first data object in the datastore; identify a sequence number associated with the first data object; in accordance with a first determination that the sequence number associated with the first data object is greater than a first boundary sequence number corresponding to a first snapshot of the tiered data structure; replace the first data object in the tiered data structure with a modified first data object including the first key information and the new value; and assign the modified first object a unique sequence number; and in accordance with a second determination that the sequence number associated with the first data object is less than or equal to the first boundary sequence number corresponding to the first snapshot of the tiered data structure; while maintaining the first data object in the tiered data structure, insert a second data object into the tiered data structure, the second data object including the first key information and the new value; and assign the second data object the unique sequence number.
-
Specification