Methods and systems for key-value-tuple-encoded storage
First Claim
1. A storage server for a distributed object storage system that stores an object in chunks, the storage server comprising:
- a storage server packet processing module that processes requests to put the chunks to, and get the chunks from, the storage server;
a persistent storage module that provides a key-value application programming interface that encodes multiple key-value-tuple (KVT) entries for one chunk; and
a plurality of persistent storage devices for storing the chunks and the multiple KVT entries,wherein the multiple KVT entries for said one chunk includes a first KVT entry that comprises an index key and an index value, wherein the index key comprises a first storage device key and a first chunk slice type, and wherein the index value comprises a content hash identifying token (CHIT) of a content of said one chunk and an error detection code, andwherein the multiple KVT entries for said one chunk further includes a second KVT entry that comprises a key and a value, wherein the key comprises a second storage device key and a second chunk slice type.
4 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure provides systems and methods for Key-Value-Tuple-encoded (KVT-encoded) object storage. In accordance with an embodiment of the invention, chunks of objects, storing payload data or metadata, are persistently stored by servers using KVT-encoded storage. Furthermore, the KVT encoding may be applied to advantageously re-structure content within a distributed object storage cluster, especially for object storage systems that allow payload references to be cached extensively. For such systems, it is of considerable value to honor (use as valid) existing chunk references after the underlying content has been re-structured. Further, the KVT encoding taught herein is completely compatible with a fully-distributed object storage cluster. One embodiment relates to a storage server that includes a persistent storage module that provides a key-value application programming interface that encodes multiple key-value-tuple (KVT) entries for one chunk. Other embodiments, aspects and features are also disclosed.
-
Citations
12 Claims
-
1. A storage server for a distributed object storage system that stores an object in chunks, the storage server comprising:
-
a storage server packet processing module that processes requests to put the chunks to, and get the chunks from, the storage server; a persistent storage module that provides a key-value application programming interface that encodes multiple key-value-tuple (KVT) entries for one chunk; and a plurality of persistent storage devices for storing the chunks and the multiple KVT entries, wherein the multiple KVT entries for said one chunk includes a first KVT entry that comprises an index key and an index value, wherein the index key comprises a first storage device key and a first chunk slice type, and wherein the index value comprises a content hash identifying token (CHIT) of a content of said one chunk and an error detection code, and wherein the multiple KVT entries for said one chunk further includes a second KVT entry that comprises a key and a value, wherein the key comprises a second storage device key and a second chunk slice type. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of storing chunks of objects by a storage server in a distributed object storage system, the method comprising:
-
processing, by a storage server packet processing module, requests to put the chunks to, and get the chunks from, the storage server; providing, by a persistent storage module, a key-value application programming interface that encodes multiple key-value-tuple (KVT) entries for one chunk; and storing the chunks and the multiple KVT entries in a plurality of persistent storage devices, wherein the multiple KVT entries for said one chunk includes a first KVT entry that comprises an index key and an index value, wherein the index key comprises a first storage device key and a first chunk slice type, and wherein the index value comprises a content hash identifying token (CHIT) of a content of said one chunk and an error detection code, and wherein the multiple KVT entries for said one chunk further includes a second KVT entry that comprises a key and a value, wherein the key comprises a second storage device key and a second chunk slice type. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification