System and method for clustering distributed hash table entries
First Claim
1. A method, comprising:
- performing, by a computer system that stores a plurality of data objects in a distributed storage system;
receiving a request to store an instance of a data object in the distributed storage system, wherein the request comprises a key for the data object;
generating keymap information for the instance of the data object that maps at least part of the key from the request to a locator and the locator to the instance of the data object;
applying a hash function to a portion of the key from the request that is less than all of the key from the request to generate a hash value;
determining a computing node on which to store the keymap information dependent on the hash value generated from said applying the hash function to the portion of the key from the request, wherein the computing node is determined without applying the hash function to all of the key from the request, and wherein the computing node is one of a plurality of computing nodes that each store a portion of a distributed hash table; and
storing the keymap information on the determined computing node.
0 Assignments
0 Petitions
Accused Products
Abstract
A distributed storage system may store data object instances in persistent storage and may store keymap information for those data object instances in a distributed hash table on multiple computing nodes. Each data object instance may include a composite key containing a user key. The keymap information for each data object instance may map the user key to a locator and the locator to the data object instance. A request to store or retrieve keymap information for a data object instance may be routed to a particular computing node based on a consistent hashing scheme in which a hash function is applied to a portion of the composite key of the data object instance. Thus, related entries may be clustered on the same computing nodes. The portion of the key to which the hash function is applied may include a pre-determined number of bits or be identified using a delimiter.
24 Citations
20 Claims
-
1. A method, comprising:
performing, by a computer system that stores a plurality of data objects in a distributed storage system; receiving a request to store an instance of a data object in the distributed storage system, wherein the request comprises a key for the data object; generating keymap information for the instance of the data object that maps at least part of the key from the request to a locator and the locator to the instance of the data object; applying a hash function to a portion of the key from the request that is less than all of the key from the request to generate a hash value; determining a computing node on which to store the keymap information dependent on the hash value generated from said applying the hash function to the portion of the key from the request, wherein the computing node is determined without applying the hash function to all of the key from the request, and wherein the computing node is one of a plurality of computing nodes that each store a portion of a distributed hash table; and storing the keymap information on the determined computing node. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A method, comprising:
performing, by a computer system that stores a plurality of data objects in a distributed storage system; receiving a request to store keymap information for an instance of a data object to be stored in the distributed storage system, wherein the request comprises a key for the data object, wherein the keymap information maps at least part of the key from the request to a locator and the locator to the instance of the data object; applying a hash function to a portion of the key from the request that is less than all of the key from the request to generate a hash value; determining a computing node on which to store the keymap information dependent on the hash value generated from said applying the hash function to the portion of the key from the request, wherein determining the computing node includes determining the computing node without applying the hash function to all of the key from the request; and storing the keymap information on the determined computing node. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
19. A non-transitory, computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
receiving a request to store keymap information for an instance of a data object to be stored in a distributed storage system, wherein the request comprises a key for the data object, wherein the keymap information maps at least part of the key from the request to a locator and the locator to the instance of the data object; applying a hash function to a portion of the key from the request that is less than all of the key from the request to generate a hash value; determining a computing node on which to store the keymap information dependent on the hash value generated from said applying the hash function to the portion of the key from the request, wherein determining the computing node includes determining the computing node without applying the hash function to all of the key from the request; and storing the keymap information on the determined computing node. - View Dependent Claims (20)
-
Specification