DATA STORAGE SYSTEM HAVING MUTABLE OBJECTS INCORPORATING TIME
First Claim
Patent Images
1. A storage system comprising:
- a first node of a plurality of storage nodes, the storage nodes including a plurality of storage devices allowing for storing immutable objects including data objects and index objects, the first node having instructions which when executed cause a first processor included in a first controller in the first node to perform actions including;
receiving a storage request from a client of the system to store a data itempartitioning the data item into a plurality of data objects, each data object including an object identifier, a timestamp and a data portiondetermining which data objects of the data item have been modified by comparing a hash of the data objects with earlier stored data objectscreating data objects for only the data objects that have been modifiedcreating a new index object for the data item, the new index object including a new index object identifier, a new timestamp and a list of constituent data objects, the list of constituent data objects including an object identifier and a hash value for each data object and further information from a parent index object about the data objects that have not been modified and information about new data objects that represent the data objects that have been modified, the new index object including a parent index object identifier of an earlier version of the data itemstoring the new index object and those data objects that have been modifiedproviding the new index object identifier for the new index object to the client.
2 Assignments
0 Petitions
Accused Products
Abstract
A data storage system having mutable objects incorporating time is described herein. According to the systems and methods described herein, a data item may be partitioned into parts (data objects) and stored as an index object. As the object storage system provides immutable objects, when a new version of a data item needs to be stored, only those parts (data objects) of the data item that changed need be saved rather than the entire data item. The systems and methods described herein allow for efficient storage, access and manipulation of mutable data items using an underlying immutable object system.
-
Citations
18 Claims
-
1. A storage system comprising:
a first node of a plurality of storage nodes, the storage nodes including a plurality of storage devices allowing for storing immutable objects including data objects and index objects, the first node having instructions which when executed cause a first processor included in a first controller in the first node to perform actions including; receiving a storage request from a client of the system to store a data item partitioning the data item into a plurality of data objects, each data object including an object identifier, a timestamp and a data portion determining which data objects of the data item have been modified by comparing a hash of the data objects with earlier stored data objects creating data objects for only the data objects that have been modified creating a new index object for the data item, the new index object including a new index object identifier, a new timestamp and a list of constituent data objects, the list of constituent data objects including an object identifier and a hash value for each data object and further information from a parent index object about the data objects that have not been modified and information about new data objects that represent the data objects that have been modified, the new index object including a parent index object identifier of an earlier version of the data item storing the new index object and those data objects that have been modified providing the new index object identifier for the new index object to the client. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A storage system comprising:
-
a first node of a plurality of storage nodes, the storage nodes including a plurality of storage devices allowing for storing immutable objects including data objects and index objects, the first node having instructions which when executed cause a first processor included in a first controller in the first node to perform actions including; receiving a storage request from a client of the system to store a data item evaluating whether the data item was earlier stored when the data item was not earlier stored, creating a first index object for the data item, the first index object including an index object identifier, a timestamp and a list of constituent data objects, the list of constituent data objects including an object identifier and a hash for each data object storing the first index object and the plurality of data objects providing an object identifier for the first index object to the client. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
Specification