IP Library Granted Patent US 8,914,609
Granted Patent B2
US 8,914,609 · App. 14/230,446 · Granted Dec 16, 2014

Modifying data storage in response to detection of a memory system imbalance

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 8,914,609
App. No.
14/230,446
Granted
Dec 16, 2014
Kind
B2
Abstract

A computing device includes an interface, memory, and a processing module. The memory stores a directory and inode tables. The directory stores a file identifier and a corresponding inumber for each file that is stored in storage units. An inode table stores an inumber, metadata, and a DSN address for each file stored in a corresponding storage unit. The processing module is operable to monitor, for each of the inode tables, utilization of the memory. The processing module is further operable to monitor, for each of the storage units, utilization of memory of the storage units. The processing module is further operable to process, for the inode table and/or the corresponding storage unit, per inode table memory utilization data and per storage unit memory utilization data to adjust memory utilization of the inode table and/or memory utilization of the corresponding storage unit.

Claims (66)

1. A computing device of a dispersed storage network (DSN) comprises:

an interface;

memory that stores:

a directory that includes a file identifying field and an inumber field, wherein the directory stores a file identifier and a corresponding inumber for each of a plurality of files, wherein the plurality of files is stored in storage units of the DSN;

inode tables corresponding to the storage units, wherein an inode table of the inode tables includes an inumber field, a meta data field, and a DSN address field and wherein the inode table stores an inumber, metadata, and a DSN address for each file stored in a corresponding storage unit of the storage units;

a processing module operably coupled to the interface and the memory, wherein the processing module is operable to:

monitor, for each of the inode tables, utilization of the memory to produce per inode table memory utilization data;

monitor, for each of the storage units, utilization of memory of the storage units to produce per storage unit memory utilization data; and

process, for at least one of the inode table and the corresponding storage unit, the per inode table memory utilization data and the per storage unit memory utilization data to adjust at least one of memory utilization of the inode table and memory utilization of the corresponding storage unit.

2. The computing device of claim 1 , wherein the processing module is further operable to process the per inode table memory utilization data and the per storage unit memory utilization data by:

detecting an imbalance between the per inode table memory utilization data and the per storage unit memory utilization data, wherein the imbalance indicates that the memory utilization for the inode table is being consumed at a greater rate than the memory utilization of the corresponding storage unit; and

in response to the imbalance, adjusting the memory utilization for the inode table by transferring inode information for one or more files from the inode table to another inode table.

3. The computing device of claim 2 , wherein the processing module is further operable to:

in response to the imbalance, determine whether to use one other of the inode tables as the other inode table or to create a new inode table; and

when the determination is to create a new inode table, allocate memory storage of the memory to the new inode table.

4. The computing device of claim 2 , wherein the processing module is further operable to:

in response to the imbalance, adjust the memory utilization of the corresponding storage unit by transferring the one or more files from the corresponding storage unit to another storage unit.

5. The computing device of claim 1 , wherein the processing module is further operable to process the per inode table memory utilization data and the per storage unit memory utilization data by:

detecting an imbalance between the per inode table memory utilization data and the per storage unit memory utilization data, wherein the imbalance indicates that the memory utilization for the inode table is being consumed at a greater rate than the memory utilization of the corresponding storage unit; and

in response to the imbalance, adjusting the memory utilization for the inode table by:

consolidating a set of inode table entries regarding a set of files into a single inode table entry, wherein the single inode table entry includes a new inumber and a new DSN address;

updating the directory with the new inumber; and

updating the corresponding storage unit with the new DSN address.

6. The computing device of claim 1 , wherein the processing module is further operable to process the per inode table memory utilization data and the per storage unit memory utilization data by:

detecting an imbalance between the per inode table memory utilization data and the per storage unit memory utilization data, wherein the imbalance indicates that the memory utilization for the corresponding storage unit is being consumed at a greater rate than the memory utilization of the inode table; and

in response to the imbalance, adjusting the memory utilization for the corresponding storage unit by:

transferring inode information for one or more files from the inode table to another inode table; and

transferring the one or more files from the corresponding storage unit to another storage unit.

7. The computing device of claim 1 , wherein the processing module is further operable to:

receive, via the interface, a data access request;

access the directory to identify one or more file identifiers corresponding to data of the data access request;

utilize one or more corresponding inumbers associated with the one or more file identifiers to identify one or more of the inode tables;

determining one or more DSN addresses from the one or more the inode tables based on the one or more corresponding inumbers; and

executing the data request utilizing the one or more DSN addresses.

8. A computer readable storage medium comprises:

a first memory that stores a directory that includes a file identifying field and an inumber field, wherein the directory stores a file identifier and a corresponding inumber for each of a plurality of files, wherein the plurality of files is stored in storage units of the DSN;

a second memory that stores inode tables corresponding to the storage units, wherein an inode table of the inode tables includes an inumber field, a meta data field, and a DSN address field and wherein the inode table stores an inumber, metadata, and a DSN address for each file stored in a corresponding storage unit of the storage units;

a third memory that stores operational instructions that, when executed by a computing device, causes the computing device to:

monitor, for each of the inode tables, utilization of the memory to produce per inode table memory utilization data;

monitor, for each of the storage units, utilization of memory of the storage units to produce per storage unit memory utilization data; and

process, for at least one of the inode table and the corresponding storage unit, the per inode table memory utilization data and the per storage unit memory utilization data to adjust at least one of memory utilization of the inode table and memory utilization of the corresponding storage unit.

9. The computer readable storage medium of claim 8 , wherein the third memory further stores operational instructions that, when executed by the computing device, causes the computing device to process the per inode table memory utilization data and the per storage unit memory utilization data by:

detecting an imbalance between the per inode table memory utilization data and the per storage unit memory utilization data, wherein the imbalance indicates that the memory utilization for the inode table is being consumed at a greater rate than the memory utilization of the corresponding storage unit; and

in response to the imbalance, adjusting the memory utilization for the inode table by transferring inode information for one or more files from the inode table to another inode table.

10. The computer readable storage medium of claim 9 , wherein the third memory further stores operational instructions that, when executed by the computing device, causes the computing device to:

in response to the imbalance, determine whether to use one other of the inode tables as the other inode table or to create a new inode table; and

when the determination is to create a new inode table, allocate memory storage of the memory to the new inode table.

11. The computer readable storage medium of claim 9 , wherein the third memory further stores operational instructions that, when executed by the computing device, causes the computing device to:

in response to the imbalance, adjust the memory utilization of the corresponding storage unit by transferring the one or more files from the corresponding storage unit to another storage unit.

12. The computer readable storage medium of claim 8 , wherein the third memory further stores operational instructions that, when executed by the computing device, causes the computing device to process the per inode table memory utilization data and the per storage unit memory utilization data by:

detecting an imbalance between the per inode table memory utilization data and the per storage unit memory utilization data, wherein the imbalance indicates that the memory utilization for the inode table is being consumed at a greater rate than the memory utilization of the corresponding storage unit; and

in response to the imbalance, adjusting the memory utilization for the inode table by:

consolidating a set of inode table entries regarding a set of files into a single inode table entry, wherein the single inode table entry includes a new inumber and a new DSN address;

updating the directory with the new inumber; and

updating the corresponding storage unit with the new DSN address.

13. The computer readable storage medium of claim 8 , wherein the third memory further stores operational instructions that, when executed by the computing device, causes the computing device to process the per inode table memory utilization data and the per storage unit memory utilization data by:

detecting an imbalance between the per inode table memory utilization data and the per storage unit memory utilization data, wherein the imbalance indicates that the memory utilization for the corresponding storage unit is being consumed at a greater rate than the memory utilization of the inode table; and

in response to the imbalance, adjusting the memory utilization for the corresponding storage unit by:

transferring inode information for one or more files from the inode table to another inode table; and

transferring the one or more files from the corresponding storage unit to another storage unit.

14. The computer readable storage medium of claim 8 , wherein the third memory further stores operational instructions that, when executed by the computing device, causes the computing device to:

receive, via the interface, a data access request;

access the directory to identify one or more file identifiers corresponding to data of the data access request;

utilize one or more corresponding inumbers associated with the one or more file identifiers to identify one or more of the inode tables;

determining one or more DSN addresses from the one or more the inode tables based on the one or more corresponding inumbers; and

executing the data request utilizing the one or more DSN addresses.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →