IP Library Granted Patent US 9,811,262
Granted Patent B1
US 9,811,262 · App. 15/357,632 · Granted Nov 7, 2017

Redistributing data in a distributed storage system based on the attributes of the data

Inventors: Silvius V. Rus (Orinda, CA); Michael Ovsiannikov (Saratoga, CA)
G06F3/0608G06F3/064G06F3/067G06F3/0631G06F3/0643G06F12/023G06F3/0629
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 9,811,262
App. No.
15/357,632
Granted
Nov 7, 2017
Kind
B1
Abstract

Accesses to a number of data blocks stored in a distributed storage are observed. Following observation of the accesses, the stored data blocks are redistributed. In one aspect, redistribution of the data blocks includes determining the access patterns for one or more of the data blocks based on the observed accesses, and determining the storage sizes for the one or more data blocks. Thereafter, based on the determined access patterns and determined storage sizes, the one or more data blocks are sorted. Subsequently, the one or more data blocks are redistributed or rebalanced across a number of storage devices of the distributed storage based on the sorting. In one aspect, the one or more data blocks are redistributed according to either a uniform distribution scheme or a proportional distribution scheme.

Claims (32)

1. A method comprising:

sorting a plurality of data blocks into a plurality of categories based at least in part on an access pattern and a size corresponding to respective data blocks of the plurality of data blocks, wherein each category of the plurality of categories is associated with a respective access pattern level and respective data block storage size requirement;

redistributing the plurality of data blocks across a plurality of storage devices of a distributed storage based on the sorting of the plurality of data blocks, the redistributing comprising:

calculating a target number of data blocks for each of the plurality of storage devices for a first category by dividing a total number of data blocks in the first category by a number of the plurality of storage devices; and

redistributing the data blocks in the first category across the plurality of storage devices based on the calculated target number of data blocks for each of the plurality of storage devices.

2. The method of claim 1 , wherein redistributing the plurality of data blocks across the plurality of storage devices based on the sorting comprises uniformly redistributing data blocks having similar access patterns and storage sizes across the plurality of storage devices.

3. The method of claim 1 , wherein redistributing the plurality of data blocks across the plurality of storage devices is further based on a determined performance characteristic for the plurality of storage devices.

4. The method of claim 3 , wherein redistributing the plurality of data blocks across the plurality of storage devices comprises redistributing the plurality of data blocks across the plurality of storage devices in proportion to a determined performance characteristic for the plurality of storage devices.

5. The method of claim 4 , wherein the determined performance characteristic comprises bandwidth of each of the plurality of storage devices.

6. The method of claim 4 , wherein the determined performance characteristic comprises storage capacity of each of the plurality of storage devices.

7. A non-transitory computer readable storage medium executing computer program instructions, the computer program instructions comprising instructions for:

sorting a plurality of data blocks into a plurality of categories based at least in part on an access pattern and a size corresponding to respective data blocks of the plurality of data blocks, wherein each category of the plurality of categories is associated with a respective access pattern level and respective data block storage size requirement;

redistributing the plurality of data blocks across a plurality of storage devices of a distributed storage based on the sorting of the plurality of data blocks, the redistributing comprising:

calculating a target number of data blocks for each of the plurality of storage devices for a first category by dividing a total number of data blocks in the first category by a number of the plurality of storage devices; and

redistributing the data blocks in the first category across the plurality of storage devices based on the calculated target number of data blocks for each of the plurality of storage devices.

8. The medium of claim 7 , wherein redistributing the plurality of data blocks across the plurality of storage devices based on the sorting comprises uniformly redistributing data blocks having similar access patterns and storage sizes across the plurality of storage devices.

9. The medium of claim 7 , wherein redistributing the plurality of data blocks across the plurality of storage devices is further based on a determined performance characteristic for the plurality of storage devices.

10. The medium of claim 9 , wherein redistributing the plurality of data blocks across the plurality of storage devices comprises redistributing the plurality of data blocks across the plurality of storage devices in proportion to the determined performance characteristic for the plurality of storage devices.

11. The medium of claim 10 , wherein the determined performance characteristic comprises bandwidth of each of the plurality of storage devices.

12. The medium of claim 10 , wherein the determined performance characteristic comprises storage capacity of each of the plurality of storage devices.

13. A system comprising:

a non-transitory computer readable storage medium storing processor-executable computer program instructions, the instructions comprising instructions for:

sorting a plurality of data blocks into a plurality of categories based at least in part on an access pattern and a size corresponding to respective data blocks of the plurality of data blocks, wherein each category of the plurality of categories is associated with a respective access pattern level and respective data block storage size requirement;

redistributing the plurality of data blocks across a plurality of storage devices of a distributed storage based on the sorting of the plurality of data blocks, the redistributing comprising:

calculating a target number of data blocks for each of the plurality of storage devices for a first category by dividing a total number of data blocks in the first category by a number of the plurality of storage devices; and

redistributing the data blocks in the first category across the plurality of storage devices based on the calculated target number of data blocks for each of the plurality of storage devices; and

a processor for executing the computer program instructions.

14. The system of claim 13 , wherein redistributing the plurality of data blocks across the plurality of storage devices based on the sorting comprises uniformly redistributing data blocks having similar access patterns and storage sizes across the plurality of storage devices.

15. The system of claim 13 , wherein redistributing the plurality of data blocks across the plurality of storage devices is further based on a determined performance characteristic for the plurality of storage devices.

16. The system of claim 15 , wherein redistributing the plurality of data blocks across the plurality of storage devices comprises redistributing the plurality of data blocks across the plurality of storage devices in proportion to the determined performance characteristic for the plurality of storage devices.

17. The system of claim 16 , wherein the determined performance characteristic comprises bandwidth of each of the plurality of storage devices.

18. The system of claim 16 , wherein the determined performance characteristic comprises storage capacity of each of the plurality of storage devices.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jun 21, 2024
From: BANK OF AMERICA, N.A.
To: QUANTCAST CORPORATION
Reel/Frame 067807/0017 →
SECURITY INTEREST Recorded Jun 18, 2024
From: QUANTCAST CORPORATION
To: CRYSTAL FINANCIAL LLC D/B/A SLR CREDIT SOLUTIONS
Reel/Frame 067777/0613 →
SECURITY INTEREST Recorded Dec 5, 2022
From: QUANTCAST CORPORATION
To: VENTURE LENDING & LEASING IX, INC.; WTI FUND X, INC.
Reel/Frame 062066/0265 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2021
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: QUANTCST CORPORATION
Reel/Frame 057678/0832 →
SECURITY INTEREST Recorded Sep 30, 2021
From: QUANTCAST CORPORATION
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 057677/0297 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2021
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: QUANTCAST CORPORATION
Reel/Frame 055599/0282 →
SECURITY INTEREST Recorded May 20, 2020
From: QUANTCAST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052717/0840 →
SECURITY INTEREST Recorded Aug 7, 2018
From: QUANTCAST CORPORATION
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 046733/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2016
From: RUS, SILVIUS V; OVSIANNIKOV, MICHAEL
To: QUANTCAST CORP.
Reel/Frame 040394/0874 →
Continuity (2)
Continuation 14950461 · Nov 24, 2015
Continuation 13666709 · Nov 1, 2012