Methods and Systems for Key Sharding of Objects Stored in Distributed Storage System
First Claim
1. A method of performing a delta edit of a named object stored in a distributed storage system, the method comprising:
- storing, in the distributed storage system, a payload of the named object in key shards that are defined by key-shard chunk references, wherein the payload for the named object comprises a collection of key-value records, and wherein referenced chunks identified by the key shards each stores a subset of the collection of the key-value records, where the key-value records in the subset have key hashes that have a range of matching bits in common;
receiving, by a gateway server, a request for a set of delta edits to be applied to the named object, wherein each delta edit specifies an addition or a deletion of a key-value record;
determining, by the gateway server, relevant key shards to which the delta edits apply; and
updating the relevant key shards, while not updating other key shards for the named object.
4 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure also provides systems and methods for sharding objects stored in a distributed storage system. In accordance with one embodiment disclosed herein, a key sharding technique is used. Key sharding is an advantageously efficient technique when dealing with an object containing a collection of key-value records. In accordance with an embodiment of the invention, referenced chunks identified by the key shards may each store a subset of the collection of the key-value records, and the key-value records in the subset have key hashes that have a range of matching bits in common. One embodiment disclosed herein provides a method of performing a delta edit of a named object stored in a distributed storage system in which a payload of the named object is stored in key shards. Other embodiments, aspects and features are also disclosed.
-
Citations
20 Claims
-
1. A method of performing a delta edit of a named object stored in a distributed storage system, the method comprising:
-
storing, in the distributed storage system, a payload of the named object in key shards that are defined by key-shard chunk references, wherein the payload for the named object comprises a collection of key-value records, and wherein referenced chunks identified by the key shards each stores a subset of the collection of the key-value records, where the key-value records in the subset have key hashes that have a range of matching bits in common; receiving, by a gateway server, a request for a set of delta edits to be applied to the named object, wherein each delta edit specifies an addition or a deletion of a key-value record; determining, by the gateway server, relevant key shards to which the delta edits apply; and updating the relevant key shards, while not updating other key shards for the named object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of retrieving a portion of a named object stored in a distributed object storage system, the method comprising:
-
storing, in the distributed storage system, a payload of the named object in key shards defined by key-shard chunk references, wherein the payload for the named object comprises a collection of key-value records, and wherein referenced chunks identified by the key shards each stores a subset of the collection of the key-value records, where the key-value records in the subset have key hashes that have a range of matching bits in common; receiving, by a gateway server, a retrieval request for the named object, wherein the retrieval request specifies a plurality of key-value records of the payload of the named object; determining, by the gateway server, relevant key shards that need to be obtained in order to fulfill the retrieval request; and obtaining content from the relevant key shards, while not obtaining content from other key shards of the named object. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A distributed storage system, the system comprising:
-
a network; a plurality of storage servers interconnected by the network; and a plurality of storage servers interconnected by the network, wherein the plurality of storage servers include a gateway server; wherein the plurality of storage servers store a payload of the named object in key shards that are defined by key-shard chunk references, wherein the payload for any version of the named object comprises a collection of key-value records, and wherein each key shard stores a subset of the collection of the key-value records in a referenced chunk, where the key-value records in the subset have key hashes that have a range of matching bits in common. - View Dependent Claims (18, 19, 20)
-
Specification