IP Library Granted Patent US 8,656,138
Granted Patent B2
US 8,656,138 · App. 13/231,375 · Granted Feb 18, 2014

Efficiently accessing an encoded data slice utilizing a memory bin

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,656,138
App. No.
13/231,375
Granted
Feb 18, 2014
Kind
B2
Abstract

A method begins by a processing module receiving an encoded data slice to store and determining a slice length of the encoded data slice. The method continues with the processing module comparing the slice length to a plurality of bin widths, wherein each of the plurality of bin widths represents a fixed storage width of a plurality of memory bins within each of a plurality of memory containers, wherein a storage unit includes the plurality of memory containers. The method continues with the processing module selecting one of the plurality of memory containers based on the comparing to produce a selected memory container, identifying an available bin of the plurality of bins of the selected memory container, and storing the encoded data slice in the available bin.

Claims (59)

1. A method for execution by a processing module of storage unit of a dispersed storage network, the method comprises:

receiving an encoded data slice to store;

determining a slice length of the encoded data slice;

comparing the slice length of the encoded data slices to a plurality of fixed storage widths, wherein physical memory of the storage unit is divided into a plurality of memory containers, wherein each of the plurality of memory containers includes a plurality of memory bins, and wherein each of the plurality of memory bins of one of the plurality of memory containers has one of the plurality of fixed storage widths such that, from memory container to memory container, the storage widths of the plurality of memory bins have differing ones of the plurality of fixed storage widths;

selecting one of the plurality of memory containers based on the comparing to produce a selected memory container;

identifying an available bin of the plurality of bins of the selected memory container; and

storing the encoded data slice in the available bin.

2. The method of claim 1 further comprises:

updating a slice location table to record the storing of the encoded data slice in the available bin.

3. The method of claim 1 further comprises:

sending a storage confirmation message after storing of the encoded data slice in the available bin.

4. The method of claim 1 , wherein the determining the slice length of the encoded data slice comprises at least one of:

extracting the slice length from a store encoded data slice request;

sending a query to a requesting entity and receiving the slice length in response to the query; and

counting a number of bytes of the encoded data slice to produce the slice length.

5. The method of claim 1 , wherein the comparing comprises:

identifying one or more memory containers of the plurality of memory containers having a fixed storage width equal to or greater than the slice length; and

identifying the selected memory container from the one or more memory containers.

6. The method of claim 5 , wherein the identifying the selected memory container is based on at least one of:

a round robin process;

memory availability of the one or more memory containers;

a random process; and

memory utilization efficiency.

7. The method of claim 1 , wherein the identifying the available bin comprises at least one of:

identifying a first available bin of the selected memory container;

identifying a last available bin of the selected memory container;

identifying the available bin from a plurality of available bins of the selected memory container using a random selection process; and

updating a list of the plurality of available bins by removing the available bin.

8. A storage unit of a dispersed storage network, wherein the storage unit comprises:

an interface;

physical memory that is divided into a plurality of memory containers, wherein each of the plurality of memory containers includes a plurality of memory bins, and wherein each of the plurality of memory bins of one of the plurality of memory containers has one of a plurality of fixed storage widths such that, from memory container to memory container, the storage widths of the plurality of memory bins have differing ones of the plurality of fixed storage widths; and

a processing module operable to:

receive, via the interface, an encoded data slice to store;

determine a slice length of the encoded data slice;

compare the slice length of the encoded data slices to a plurality of fixed storage widths;

select one of the plurality of memory containers based on the comparing to produce a selected memory container;

identify an available bin of the plurality of bins of the selected memory container; and

store the encoded data slice in the available bin.

9. The storage unit of claim 8 , wherein the processing module further functions to:

update a slice location table to record the storing of the encoded data slice in the available bin.

10. The storage unit of claim 8 , wherein the processing module further functions to:

send, via the interface, a storage confirmation message after storing of the encoded data slice in the available bin.

11. The storage unit of claim 8 , wherein the processing module functions to determine the slice length of the encoded data slice by at least one of:

extracting the slice length from a store encoded data slice request;

sending, via the interface, a query to a requesting entity and receiving, via the interface, the slice length in response to the query; and

counting a number of bytes of the encoded data slice to produce the slice length.

12. The storage unit of claim 8 , wherein the processing module functions to compare by:

identifying one or more memory containers of the plurality of memory containers having a fixed storage width equal to or greater than the slice length; and

identifying the selected memory container from the one or more memory containers.

13. The storage unit of claim 12 , wherein the processing module functions to identify the selected memory container based on at least one of:

a round robin process;

memory availability of the one or more memory containers;

a random process; and

memory utilization efficiency.

14. The storage unit of claim 8 , wherein the processing module functions to identify the available bin by at least one of:

identifying a first available bin of the selected memory container;

identifying a last available bin of the selected memory container;

identifying the available bin from a plurality of available bins of the selected memory container using a random selection process; and

updating a list of the plurality of available bins by removing the available bin.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2011
From: RESCH, JASON K.; MA, SIYUAN
To: CLEVERSAFE, INC.
Reel/Frame 026896/0278 →