Low level object version tracking using non-volatile memory write generations
First Claim
Patent Images
1. A method for data versioning in a non-volatile memory, the method comprising:
- obtaining a first object key that uniquely identifies a first data object stored in the non-volatile memory, and obtaining an index for the first data object generated based on a hash of the first object key, wherein the first data object is assigned a first version number;
entering, in an object list, the first object key and location information of the first data object stored in the non-volatile memory, wherein the object list contains entries for all data objects having the first version number;
creating, in an object table, a record associated with the first data object, wherein the object table is distinct from the object list, and the record includes the index for the first data object, a reference to the object list, and the first version number;
subsequent to entering the first object key and location information of the first data object in the first object list, assigning a second version number to the first data object;
after assigning the second version number to the first data object, obtaining a second object key that uniquely identifies a second data object stored in the non-volatile memory, and obtaining an index for the second data object generated based on a hash of the second object key, wherein the second data object is assigned the first version number; and
entering, in the object list, the second object key and location information of the second data object stored in the non-volatile memory.
5 Assignments
0 Petitions
Accused Products
Abstract
Data versioning in a non-volatile memory. An object key associated with a data object is created. An index into an object table is generated using the object key. A version number is stored in conjunction with the data object stored in the non-volatile memory. In an object linked-list, the object key and the location information of the data object in the non-volatile memory are stored. A record associated with the data object is created in an object table. The record includes an index, a reference to the object linked-list, and the version number. The index is generated based on the object key.
-
Citations
22 Claims
-
1. A method for data versioning in a non-volatile memory, the method comprising:
-
obtaining a first object key that uniquely identifies a first data object stored in the non-volatile memory, and obtaining an index for the first data object generated based on a hash of the first object key, wherein the first data object is assigned a first version number; entering, in an object list, the first object key and location information of the first data object stored in the non-volatile memory, wherein the object list contains entries for all data objects having the first version number; creating, in an object table, a record associated with the first data object, wherein the object table is distinct from the object list, and the record includes the index for the first data object, a reference to the object list, and the first version number; subsequent to entering the first object key and location information of the first data object in the first object list, assigning a second version number to the first data object; after assigning the second version number to the first data object, obtaining a second object key that uniquely identifies a second data object stored in the non-volatile memory, and obtaining an index for the second data object generated based on a hash of the second object key, wherein the second data object is assigned the first version number; and entering, in the object list, the second object key and location information of the second data object stored in the non-volatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for providing data versioning, the system comprising:
-
non-volatile memory configured to store one or more data objects; and a non-volatile memory controller configured to; obtain a first object key that uniquely identifies a first data object of the one or more data objects stored in the non-volatile memory, and obtain an index for the first data object generated based on a hash of the first object key, wherein the first data object is assigned a first version number; enter, in an object list, the first object key and location information of the first data object stored in the non-volatile memory, wherein the object list contains entries for all data objects having the first version number; create, in an object table, a record associated with the first data object, wherein the object table is distinct from the object list, and the record includes the index for the first data object, a reference to the object list, and the first version number; subsequent to entering the first object key and location information of the first data object in the first object list, assign a second version number to the first data object; after assigning the second version number to the first data object, obtain a second object key that uniquely identifies a second data object stored in the non-volatile memory, and obtain an index for the second data object generated based on a hash of the second object key, wherein the second data object is assigned the first version number; and enter, in the object list, the second object key and location information of the second data object stored in the non-volatile memory. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification