IP Library Patent Application 14475772
Patent Application
App. No. 14/475,772

UTILIZING MULTIPLE DATA STRUCTURES FOR SLICE STORAGE

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 None
App. No.
14/475,772
Abstract

A method includes a dispersed storage (DS) processing module receiving a slice access request that includes a slice name. The method continues by obtaining one or more revision numbers for the slice access request. The method continues for each combination of revision number and the slice name, by performing a deterministic function on the combination to produce a slice location table index value. The method continues by accessing a slice location table utilizing the slice location table index value to obtain a slice location. The method continues by accessing a slice utilizing the slice location. The method continues by generating a slice access response based on the accessing of the slice and sending the slice access response to a requesting entity.

Claims (120)

1 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a slice access request that includes a slice name;

obtaining one or more revision numbers for the slice access request;

for each combination of revision number and the slice name, performing a deterministic function on the combination to produce a slice location table index value;

accessing a slice location table utilizing the slice location table index value to obtain a slice location;

accessing a slice utilizing the slice location;

generating a slice access response based on the accessing of the slice; and

sending the slice access response to a requesting entity.

2 . The method of claim 1 , wherein the slice location includes one or more of:

a memory device identifier; and

a location identifier within the memory device.

3 . The method of claim 1 further comprises the obtaining including searching a slice name tree and receiving the revision numbers.

4 . The method of claim 1 further comprises the obtaining including selecting an estimated revision number.

5 . The method of claim 1 , wherein the slice location table includes one or more of:

associated information;

slice name;

revision number;

slice length of the revision;

an integrity value of the revision.

6 . The method of claim 1 further comprises:

when the request includes writing a slice, creating a new entry in a slice name tree.

7 . The method of claim 6 , wherein the new entry includes one or more of:

slice name;

revision number;

slice integrity value;

slice length; and

pointers to adjacent entries.

8 . The method of claim 1 further comprises the request including access to a list of the slice name ranges.

9 . The method of claim 8 wherein the list of the slice name ranges includes accessing a slice name tree within a slice name range to gather revision number and any associated information.

10 . The method of claim 1 wherein the slice access response includes, for each slice name:

slice;

revision;

slice length; and

revision count.

11 . A dispersed storage network (DSN) comprising one or more processing modules configured to:

receive a slice access request that includes a slice name;

obtain a revision number for the slice access request;

for each combination of revision number and the slice name, perform a deterministic function on the combination to produce a slice location table index value;

access a slice location table utilizing the slice location table index value to obtain a slice location;

access a slice utilizing the slice location;

generate a slice access response based on the accessing of the slice; and

send the slice access response to a requesting entity.

12 . The DSN of claim 11 , further comprising a slice name tree and the obtaining comprises searching the slice name tree and receiving the revision number.

13 . The DSN of claim 11 further comprises:

when the request includes reading a slice, the obtaining revision number includes selecting an estimated revision number.

14 . The DSN of claim 11 , wherein the slice location table includes one or more of:

associated information;

slice name;

revision number;

slice length of the revision;

an integrity value of the revision.

15 . The DSN of claim 11 further comprises:

when the request includes writing a slice, creating a new entry in a slice name tree.

16 . The DSN of claim 15 , wherein the new entry includes one or more of:

slice name;

revision number;

slice integrity value;

slice length; and

pointers to adjacent entries.

17 . The DSN of claim 11 further comprises the request including access to a list of the slice name ranges.

18 . The DSN of claim 17 wherein the list of the slice name ranges includes accessing a slice name tree within a slice name range to gather the revision numbers and any associated information.

19 . The DSN of claim 11 wherein the slice access response includes, for each slice name:

slice;

revision;

slice length; and

revision count.

20 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a slice range access request that includes a range of slice names;

obtaining a revision number for each slice in the slice range access request;

for each combination of the revision number and the slice name obtained, performing a deterministic function on the combination to produce slice location table index values;

accessing a slice location table utilizing the slice location table index values to obtain slice locations;

accessing the slices utilizing the slice locations;

generating a slice access response based on the accessing of the slices; and

sending the slice access response to a requesting entity.

21 . The method of claim 20 further comprises the obtaining including accessing a slice name tree within a slice name range to gather the revision number and any associated information.

22 . The method of claim 20 , wherein the slice access response includes:

slice;

revision;

slice length; and

revision count.

23 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a read slice access request that includes a slice name;

for each combination of an estimated revision number and the slice name, performing a deterministic function on the combination to produce a slice location table index value;

accessing a slice location table utilizing the slice location table index value to obtain a slice location;

accessing a slice utilizing the slice location;

generating a slice access response based on the accessing of the slice; and

sending the slice access response to a requesting entity.

24 . The method of claim 23 wherein the slice access response includes, for each slice name:

slice;

revision;

slice length; and

revision count.

25 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a read slice access request that includes a slice name;

searching a slice name tree and receiving a slice name revision number;

for each combination of an estimated revision number and the slice name, performing a deterministic function on the combination to produce a slice location table index value;

accessing a slice location table utilizing the slice location table index value to obtain a slice location;

accessing a slice utilizing the slice location;

generating a slice access response based on the accessing of the slice; and

sending the slice access response to a requesting entity.

26 . The method of claim 25 wherein the slice access response includes, for each slice name:

slice;

revision;

slice length; and

revision count.

27 . The method of claim 25 further comprises the searching a slice name tree and receiving slice name revision numbers including receiving one or more of:

slice integrity value;

slice length; and

pointers to adjacent entries.

28 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a write slice access request that includes a slice name, slice and revision number;

for each combination of the revision number and the slice name, performing a deterministic function on the combination to produce a slice location table index value;

accessing a slice location table utilizing the slice location table index value to obtain a slice location;

writing the slice to the slice location within DSN memory;

creating a new entry in a slice name tree including at least slice name and revision number;

sending a slice access response to a requesting entity.

29 . The method of claim 28 , wherein the new entry further includes one or more of:

slice integrity value;

slice length; and

pointers to adjacent entries.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2014
From: KACZMAREK, JOSEPH MARTIN; VOLVOVSKI, ILYA; BAPTIST, ANDREW; TSVETKOV, ANDREI
To: CLEVERSAFE, INC.
Reel/Frame 033659/0231 →