IP Library Granted Patent US 9,152,489
Granted Patent B2
US 9,152,489 · App. 12/903,209 · Granted Oct 6, 2015

Revision synchronization of a dispersed storage network

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,152,489
App. No.
12/903,209
Granted
Oct 6, 2015
Kind
B2
Abstract

A method begins by a processing module receiving a write request message from a dispersed storage (DS) processing module, wherein the write request message includes a slice name, a DS processing module most-recent slice revision, a new slice revision, and an encoded directory slice of directory information regarding storage of data. The method continues with the processing module obtaining, from local memory, a DS unit most-recent slice revision based on the slice name. The method continues with the processing module storing the new slice revision as the DS unit most-recent slice revision and storing the encoded directory slice when the DS unit most-recent slice revision compares favorably to the DS processing module most-recent slice revision.

Claims (49)

1. A method for execution by a dispersed storage (DS) unit, the method comprises:

receiving a write request message from a dispersed storage (DS) processing module, wherein the write request message includes a slice name, a DS processing module most-recent slice revision, a new slice revision, and an encoded directory slice of directory information regarding storage of data;

obtaining, from local memory, a DS unit most-recent slice revision based on the slice name; and

when a revision number of the DS unit most-recent slice revision is same as a revision number of the DS processing module most-recent slice revision:

storing the new slice revision as the DS unit most-recent slice revision; and

storing the encoded directory slice.

2. The method of claim 1 further comprises:

generating a write response message that includes an operation succeeded status code; and

sending the write response message to the DS processing module.

3. The method of claim 1 further comprises:

when the revision number of the DS unit most-recent slice revision is not the same as the revision number of the DS processing module most-recent slice revision:

generating a write response message to include a condition status code indicating an unfavorable comparison of the revision numbers; and

sending the write response message to the DS processing module.

4. The method of claim 1 further comprises:

receiving the write request message, wherein the write request message further includes a DS processing module transaction identifier;

determining whether the slice name has a locked state based on a local state indicator; and

when the slice name has the locked state and a DS unit transaction identifier associated with the encoded directory slice is different than the DS processing module transaction identifier:

generating a write response message that includes a transaction conflict status code; and

sending the write response message to the DS processing module.

5. The method of claim 4 further comprises:

when the slice name does not have a locked state:

updating the local state indicator to indicate that the slice name has the locked state; and

storing the DS processing module transaction identifier as the DS unit transaction identifier.

6. A dispersed storage (DS) unit comprises:

an interface;

a local memory; and

a processing module operable to:

receive, via the interface, a write request message from a dispersed storage (DS) processing module, wherein the write request message includes a slice name, a DS processing module most-recent slice revision, a new slice revision, and an encoded directory slice of directory information regarding storage of data;

obtain, from the local memory, a DS unit most-recent slice revision based on the slice name; and

when a revision number of the DS unit most-recent slice revision is same as a revision number of the DS processing module most-recent slice revision:

store, in the local memory, the new slice revision as the DS unit most-recent slice revision; and

store, in the local memory, the encoded directory slice.

7. The DS unit of claim 6 , wherein the processing module further functions to:

generate a write response message that includes an operation succeeded status code; and

send, via the interface, the write response message to the DS processing module.

8. The DS unit of claim 6 , wherein the processing module further functions to:

when the revision number of the DS unit most-recent slice revision is not the same as the revision number of the DS processing module most-recent slice revision:

generate a write response message to include a condition status code indicating an unfavorable comparison of the revision numbers; and

send, via the interface, the write response message to the DS processing module.

9. The DS unit of claim 6 , wherein the processing module further functions to:

receive, via the interface, the write request message, wherein the write request message further includes a DS processing module transaction identifier;

determine whether the slice name has a locked state based on a local state indicator; and

when the slice name has the locked state and a DS unit transaction identifier associated with the encoded directory slice is different than the DS processing module transaction identifier:

generate a write response message that includes a transaction conflict status code; and

send, via the interface, the write response message to the DS processing module.

10. The DS unit of claim 9 , wherein the processing module further functions to:

when the slice name does not have a locked state:

update, in the local memory, the local state indicator to indicate that the slice name has the locked state; and

store, in the local memory, the DS processing module transaction identifier as the DS unit transaction identifier.

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 Oct 13, 2010
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; VOLVOVSKI, ILYA; RESCH, JASON K.; DHUSE, GREG; CILFONE, BART
To: CLEVERSAFE, INC.
Reel/Frame 025128/0673 →