IP Library Granted Patent US 10,684,996
Granted Patent B1
US 10,684,996 · App. 15/702,258 · Granted Jun 16, 2020

Distributing data of multiple logically independent file systems in distributed storage systems including physically partitioned disks

Inventor: Silvius V. Rus (Orinda, CA)
Assignee: Quantcast Corporation
G06F16/182G06F3/067G06F16/278
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,684,996
App. No.
15/702,258
Granted
Jun 16, 2020
Kind
B1
Abstract

A distributed storage system maintains multiple logically independent file systems. Each file system includes a data set stored by a storage device of the distributed storage system. During operation, access pattern levels for the multiple logically independent file systems are determined. Thereafter, the data sets included in the multiple logically independent file systems are redistributed across multiple storage devices of the distributed storage. Redistribution of a particular data set is based at least in part on the particular file system including the particular data set and on the determined access pattern levels for the multiple logically independent file systems. In addition, each disk of a plurality of disks in the distributed storage includes a physically separated partition dedicated to storing the data of the file system that is most frequently accessed. The distribution of data is based at least in part on the presence of the physically separated partition.

Claims (90)

1. A method for distributing data stored in a distributed storage system comprising a plurality of storage devices, wherein at least one storage device is a disk, the method comprising:

maintaining a plurality of logically independent file systems, wherein each file system comprises a corresponding data set stored by the distributed storage, wherein each data set comprises at least one corresponding data file;

establishing an outer partition and an inner partition on the least one disk, the outer partition located closer to an outer edge of the respective disk than the inner partition;

(A) determining file system access patterns by observing accesses to the at least one data file corresponding to each of the file systems; and

(B) responsive to identifying, based on the determined file system access patterns, a first file system having a highest probability of future access among the plurality of file systems, wherein remaining file systems comprise the plurality of files systems excluding the first file system:

distributing the data set of the first file system across the at least one outer partition;

and distributing the data sets of the remaining file systems, comprising:

determining a corresponding storage requirement for each of the remaining file systems;

obtaining a corresponding storage capacity for each of the plurality of storage devices, wherein the corresponding storage capacity of the at least one disk excludes a storage capacity of the corresponding outer partition;

calculating a target amount of storage space corresponding to each of the remaining file systems for each of the plurality of storage devices by dividing the corresponding storage requirement for each of the remaining files systems by a number of the plurality of storage devices; and

responsive to determining that the target amount of data corresponding to a particular storage device exceeds an available storage capacity of the particular storage device:

calculating a decreased target amount of data corresponding to each of the remaining file systems for the particular storage device such that the decreased target amount of data corresponding to the particular storage device is equal to or less than the available storage capacity; and

calculating an updated target amount of storage space corresponding to each of the remaining file systems for each of the plurality of storage devices, comprising:

reducing the corresponding storage requirement for each of the remaining files systems by the decreased target amount; and

dividing the corresponding reduced storage requirement for each of the remaining files systems by the number of the plurality of storage devices reduced by one;

distributing the data sets corresponding to the decreased target amount of each of the remaining file systems to the storage of the particular storage device; and

distributing the data sets corresponding to the updated target amount of each of the remaining files systems across the storage of the plurality of storage devices excluding the particular storage device.

2. The method of claim 1 , further comprising, responsive to a trigger:

repeating step (A) to determine new file system access patterns; and

repeating step (B) to:

identify a new first file system having the highest probability of future access among the plurality of file systems and new remaining file systems;

distribute the data set of the new first file system across the at least one outer partition;

calculate a new target amount of storage space corresponding to each of the new remaining file systems for each of the plurality of storage devices;

calculate a new decreased target amount corresponding to each of the new remaining file systems for the particular storage device;

calculate a new updated target amount of storage space corresponding to each of the new remaining file systems for each of the plurality of storage devices;

distribute the data sets corresponding to the new decreased target amount of each of the new remaining file systems to the storage of the particular storage device; and

distribute the data sets corresponding to the new updated target amount of each of the remaining files systems to storage of the plurality of storage devices excluding the particular storage device.

3. The method of claim 2 , wherein the trigger is based on a measured performance level of the distributed storage system.

4. The method of claim 3 , wherein the trigger is based on determining that a specific storage device is storing data sets for a specific file system that is greater that the target amount of storage space for the specific storage device.

5. A non-transitory computer-readable storage medium storing processor-executable computer program instructions that, when executed, cause a computer processor to perform a method for distributing data stored in a distributed storage system comprising a plurality of storage devices, wherein at least one storage device is a disk, the method comprising:

a method for distributing data stored in a distributed storage system comprising a plurality of storage devices, wherein at least one storage device is a disk, the method comprising:

maintaining a plurality of logically independent file systems, wherein each file system comprises a corresponding data set stored by the distributed storage, wherein each data set comprises at least one corresponding data file;

establishing an outer partition and an inner partition on the least one disk, the outer partition located closer to an outer edge of the respective disk than the inner partition;

(A) determining file system access patterns by observing accesses to the at least one data file corresponding to each of the file systems; and

(B) responsive to identifying, based on the determined file system access patterns, a first file system having a highest probability of future access among the plurality of file systems, wherein remaining file systems comprise the plurality of files systems excluding the first file system:

distributing the data set of the first file system across the at least one outer partition;

and distributing the data sets of the remaining file systems, comprising: determining a corresponding storage requirement for each of the remaining file systems;

obtaining a corresponding storage capacity for each of the plurality of storage devices, wherein the corresponding storage capacity of the at least one disk excludes a storage capacity of the corresponding outer partition;

calculating a target amount of storage space corresponding to each of the remaining file systems for each of the plurality of storage devices by dividing the corresponding storage requirement for each of the remaining files systems by a number of the plurality of storage devices;

and responsive to determining that the target amount of data corresponding to a particular storage device exceeds an available storage capacity of the particular storage device:

calculating a decreased target amount of data corresponding to each of the remaining file systems for the particular storage device such that the decreased target amount of data corresponding to the particular storage device is equal to or less than the available storage capacity; and

calculating an updated target amount of storage space corresponding to each of the remaining file systems for each of the plurality of storage devices, comprising:

reducing the corresponding storage requirement for each of the remaining files systems by the decreased target amount;

and dividing the corresponding reduced storage requirement for each of the remaining files systems by the number of the plurality of storage devices reduced by one;

distributing the data sets corresponding to the decreased target amount of each of the remaining file systems to the storage of the particular storage device;

and distributing the data sets corresponding to the updated target amount of each of the remaining files systems across the storage of the plurality of storage devices excluding the particular storage device.

6. The non-transitory computer-readable storage medium of claim 5 , wherein the method further comprises, responsive to a trigger:

repeating step (A) to determine new file system access patterns;

and repeating step (B) to:

determine a new first file system having the highest probability of future access among the plurality of file systems and new remaining file systems;

distribute the data set of the new first file system across the at least one outer partition;

calculate a new target amount of storage space corresponding to each of the new remaining file systems for each of the plurality of storage devices;

calculate a new decreased target amount corresponding to each of the new remaining file systems for the particular storage device;

calculate a new updated target amount of storage space corresponding to each of the new remaining file systems for each of the plurality of storage devices;

distribute the data sets corresponding to the new decreased target amount of each of the new remaining file systems to the storage of the particular storage device;

and distribute the data sets corresponding to the new updated target amount of each of the remaining files systems to storage of the plurality of storage devices excluding the particular storage device.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the trigger is based on a measured performance level of the distributed storage system.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the trigger is based on determining that a specific storage device is storing data sets for a specific file system that is greater that the target amount of storage space for the specific storage device.

9. A system comprising:

a processor; and

a non-transitory computer-readable storage medium storing processor-executable computer program instructions that, when executed, cause a computer processor to perform a method for

distributing data stored in a distributed storage system comprising a plurality of storage devices,

wherein at least one storage device is a disk, the method comprising:

maintaining a plurality of logically independent file systems, wherein each file system comprises a corresponding data set stored by the distributed storage, wherein each data set comprises at least one corresponding data file;

establishing an outer partition and an inner partition on the least one disk, the outer partition located closer to an outer edge of the respective disk than the inner partition;

(A) determining file system access patterns by observing accesses to the at least one data file corresponding to each of the file systems; and

(B) responsive to identifying, based on the determined file system access patterns, a first file system having a highest probability of future access among the plurality of file systems, wherein remaining file systems comprise the plurality of files systems excluding the first file system:

distributing the data set of the first file system across the at least one outer partition; and

distributing the data sets of the remaining file systems, comprising:

determining a corresponding storage requirement for each of the remaining file systems;

obtaining a corresponding storage capacity for each of the plurality of storage devices, wherein the corresponding storage capacity of the at least one disk excludes a storage capacity of the corresponding outer partition;

calculating a target amount of storage space corresponding to each of the remaining file systems for each of the plurality of storage devices by dividing the corresponding storage requirement for each of the remaining files systems by a number of the plurality of storage devices; and

responsive to determining that the target amount of data corresponding to a particular storage device exceeds an available storage capacity of the particular storage device:

calculating a decreased target amount of data corresponding to each of the remaining file systems for the particular storage device such that the decreased target amount of data corresponding to the particular storage device is equal to or less than the available storage capacity; and

calculating an updated target amount of storage space corresponding to each of the remaining file systems for each of the plurality of storage devices, comprising:

reducing the corresponding storage requirement for each of the remaining files systems by the decreased target amount; and

dividing the corresponding reduced storage requirement for each of the remaining files systems by the number of the plurality of storage devices reduced by one;

distributing the data sets corresponding to the decreased target amount of each of the remaining file systems to the storage of the particular storage device; and distributing the data sets corresponding to the updated target amount of each of the remaining files systems across the storage of the plurality of storage devices excluding the particular storage device.

10. The system of claim 9 , wherein the method further comprises, responsive to a trigger:

repeating step (A) to determine new file system access patterns; and

repeating step (B) to:

determine a new first file system having the highest probability of future access among the plurality of file systems and new remaining file systems;

distribute the data set of the new first file system across the at least one outer partition;

calculate a new target amount of storage space corresponding to each of the new remaining file systems for each of the plurality of storage devices;

calculate a new decreased target amount corresponding to each of the new remaining file systems for the particular storage device;

calculate a new updated target amount of storage space corresponding to each of the new remaining file systems for each of the plurality of storage devices;

distribute the data sets corresponding to the new decreased target amount of each of the new remaining file systems to the storage of the particular storage device; and

distribute data sets corresponding to the new updated target amount of each of the remaining files systems to storage of the plurality of storage devices excluding the particular storage device.

11. The system of claim 10 , wherein the trigger is based on a measured performance level of the distributed storage system.

12. The system of claim 11 , wherein the trigger is based on determining that a specific storage device is storing data sets for a specific file system that is greater that the target amount of storage space for the specific storage device.

Assignments (7)
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 →
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 Aug 7, 2018
From: QUANTCAST CORPORATION
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 046733/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: RUS, SILVIUS V.
To: QUANTCAST CORPORATION
Reel/Frame 046007/0098 →
Continuity (2)
Continuation 14484639 · Sep 12, 2014
Continuation In Part 13760933 · Feb 6, 2013
Cited By (1)
US 12,632,799