IP Library Granted Patent US 10,802,737
Granted Patent B2
US 10,802,737 · App. 15/411,847 · Granted Oct 13, 2020

System and processes for dynamic object routing

Inventors: Bharatendra Boddu (San Mateo, CA); Balaji Ganesan (San Mateo, CA)
Assignee: Cloudian Holdings, Inc.
G06F3/0635G06F3/0605G06F3/067G06F9/5083G06F11/3433
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,802,737
App. No.
15/411,847
Granted
Oct 13, 2020
Kind
B2
Abstract

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.

Claims (27)

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.

Assignments (7)
SECURITY INTEREST Recorded Aug 19, 2024
From: CLOUDIAN HOLDINGS INC.
To: AVIDBANK
Reel/Frame 068332/0854 →
RELEASE OF SECURITY INTEREST Recorded Aug 12, 2024
From: SILICON VALLEY BANK
To: CLOUDIAN HOLDINGS INC.
Reel/Frame 068254/0994 →
SECURITY INTEREST Recorded Aug 23, 2023
From: CLOUDIAN HOLDINGS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 064671/0010 →
SECURITY INTEREST Recorded Jul 14, 2023
From: CLOUDIAN HOLDINGS INC.
To: SILICON VALLEY BANK
Reel/Frame 064252/0451 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2021
From: HERCULES CAPITAL, INC., AS AGENT
To: CLOUDIAN HOLDINGS INC.
Reel/Frame 054881/0403 →
SECURITY INTEREST Recorded Nov 6, 2018
From: CLOUDIAN HOLDINGS INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 047426/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: BODDU, BHARATENDRA; GANESAN, BALAJI
To: CLOUDIAN HOLDINGS, INC.
Reel/Frame 041030/0432 →
Continuity (2)
Provisional Application 62289871 · Feb 1, 2016
Related Publication 20170220290A1 · Aug 3, 2017