A computer-implemented process is disclosed for dynamically routing data objects to storage locations. The process includes assigning a unique identifier value and a timestamp value to an incoming data object. The process further includes determining a bucket for the data object based on the unique identifier value. The process further includes determining a storage location for the data object from among a plurality of storage locations, wherein the determination is based on the bucket and the timestamp value. The process further includes routing the data object to the storage location for storage therein.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented process for dynamically routing data objects to storage locations making up a storage cluster that is associated with a plurality of buckets, the process comprising: assigning a unique identifier value and a timestamp value to an incoming data object; determining a bucket value for the data object based on the unique identifier value, the bucket value assigning the data object to a bucket from among the plurality of buckets; associating the data object with a storage location, configured to physically store the data object, from among a plurality of storage locations available on the storage cluster, wherein the association is determined from the bucket value and the timestamp value; routing the data object to the storage location for storage therein; and in response to an imbalance in a fill rate of the plurality of buckets, subsequently associating the bucket with a different storage location from among the plurality of storage locations available on the storage cluster, wherein the bucket is temporally associated with one or more of the plurality of storage locations such that subsequently associating the bucket with the different storage location is accomplished without migrating the data object between the storage location and the different storage location.
2. The process according to claim 1 , further comprising: generating a routing table that associates the bucket with the storage location for the timestamp value, wherein said determining the storage location includes consulting the routing table.
3. The process according to claim 2 , further comprising: retrieving the data object from the storage location based on the bucket and the timestamp value based on the routing table.
4. The process according to claim 1 , further comprising: retrieving the data object from the storage location based on the bucket and the timestamp value.
5. The process according to claim 4 , wherein retrieving the data object from the storage location includes performing a look-up operation on the routing table that associates the bucket with the storage location for the timestamp value.
6. The process according to claim 1 , wherein the unique identifier is a hash value, and the bucket is a hash bucket of a hash value space.
7. The process according to claim 2 , further comprising: associating, via the routing table, the bucket with the different storage location for a different timestamp value.
8. The process according to claim 7 , wherein associating the bucket with the different storage location occurs after routing the data object.
9. The process according to claim 8 , further comprising: retrieving the data object from the storage location based on the bucket and the timestamp value via consulting the routing table.
10. The process according to claim 7 , further comprising: determining that a storage utilization of the bucket exceeds than an overall storage utilization by a predetermined threshold value, wherein associating the bucket with the different storage location occurs after the threshold value is determined to be exceeded.
11. The process according to claim 2 , further comprising: associating, via the routing table, the bucket with the storage location as of an initialization time prior to the timestamp value.
12. The process according to claim 11 , further comprising: associating the bucket with the different storage location as of a later time after the timestamp value.
13. The process according to claim 12 , wherein associating the bucket with the different storage location occurs after routing the data object.
14. The process according to claim 13 , further comprising: retrieving the data object from the storage location based on the bucket and the timestamp value via consulting the routing table.
15. The process according to claim 11 , further comprising: determining that a storage utilization of the bucket exceeds than an overall storage utilization by a predetermined threshold value, wherein associating the bucket with the different storage location occurs after the threshold value is determined to be exceeded.
16. The process according to claim 2 , further comprising: associating, via the routing table, the bucket with the different storage location for a second timestamp value; assigning a second unique identifier value and the second timestamp value to an incoming second data object; determining the bucket for the second data object based on the second unique identifier value; determining the different storage location from among the plurality of storage locations, the determination based on the bucket and the second timestamp value; routing the second data object to the different storage location for storage therein.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 20, 2017
October 13, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.