IP Library Granted Patent US 9,880,902
Granted Patent B2
US 9,880,902 · App. 15/460,958 · Granted Jan 30, 2018

Multi-writer revision synchronization in 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,880,902
App. No.
15/460,958
Granted
Jan 30, 2018
Kind
B2
Abstract

A method begins by a processing module of a computing device receiving a most current revision value for a data element, where a revision value for the data element is generated based on a current time of a storing device. The method continues with the processing module generating a new revision value for a currently revised version of the data element based on a current time of the computing device and comparing the current time of the new revision value with the current time of the most current revision value. When the current time of the new revision value precedes the current time of the most current revision value, the method continues with the processing module adjusting the new revision value to produce an adjusted revision value and facilitating storage of the currently revised version of the data element having the adjusted revision value.

Claims (62)

1. A storage unit (SU) comprising:

a clock;

an interface configured to interface and communicate with a distributed storage network (DSN);

memory that stores operational instructions; and a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the SU based on the operational instructions, is configured to:

store at least one encoded data slice (EDS) of a set of encoded data slices (EDSs) associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, wherein a threshold number of EDSs are needed to recover the data segment;

generate, based on a revision level request, a most current revision value for a data element, wherein a revision value of the data element is based on a current time of the clock, wherein the data element including a data segment that is associated with the data object;

transmit the most current revision value for the data element to a computing device via the DSN; and

when a current time of a new revision value for a currently revised version of the data element as generated by the computing device based on another current time of another clock of the computing device precedes a current time of the most current revision value based on the clock;

receive the currently revised version of the data element having an adjusted revision value from the computing device via the DSN, wherein the adjusted revision value having an effective current time that succeeds the current time of the most current revision value; and

store the currently revised version of the data element having the adjusted revision value.

2. The SU of claim 1 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

receive the currently revised version of the data element having the adjusted revision value from the computing device via the DSN including to receive at least one other EDSs of another set of EDSs that is generated by the computing device dispersed error encoding another data segment, wherein the threshold number of EDSs of the another set of EDSs are needed to recover the another data segment.

3. The SU of claim 1 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

when the current time of the new revision value for the currently revised version of the data element as generated by the computing device based on the another current time of the another clock of the computing device succeeds the current time of the most current revision value based on the clock;

receive the currently revised version of the data element having the new revision value from the computing device via the DSN; and

store the currently revised version of the data element having the new revision value.

4. The SU of claim 1 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

receive the revision level request from the computing device via the DSN;

generate a response to the revision level request; and

transmit the response to the revision level request to the computing device via the DSN to be used, at least in part, by the computing device to determine the current time of the most current revision value.

5. The SU of claim 1 , wherein the set of EDSs are distributedly stored in a plurality of storage units (SUs) that includes the SU.

6. The SU of claim 1 , wherein the SU is located at a first location that is remotely located from at least one other SU that is located at a second location within the DSN and that stores at least one other EDS of the set of EDSs associated with the data object.

7. The SU of claim 1 , wherein the computing device includes a portable computing device, a social networking device, a gaming device, a cell phone, a smart phone, a personal digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a video game controller, a fixed computing device, a personal computer, a computer server, a cable, set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, or a video game console.

8. The SU of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A storage unit (SU) comprising:

a clock;

an interface configured to interface and communicate with a distributed storage network (DSN); memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the SU based on the operational instructions, is configured to:

store at least one encoded data slice (EDS) of a set of encoded data slices (EDSs) associated with a data object, wherein the set of EDSs are distributedly stored in a plurality of storage units (SUs) that includes the SU, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, wherein a threshold number of EDSs are needed to recover the data segment;

receive a revision level request from a computing device via the DSN;

generate, based on the revision level request, a most current revision value for a data element, wherein a revision value of the data element is based on a current time of the clock, wherein the data element including a data segment that is associated with the data object;

transmit the most current revision value for the data element to the computing device via, the DSN in response to the revision level request; and

when a current time of a new revision value, for a currently revised version of the data element as generated by the computing device based on another current time of another clock of the computing device precedes a current time of the most current revision value based on the clock;

receive the currently revised version of the data element having an adjusted revision value from the computing device via the DSN, wherein the adjusted revision value having an effective current time that succeeds the current time of the most current revision value; and

store the currently revised version of the data element having the adjusted revision value;

when the current time of the new revision value for the currently revised version of the data element as generated by the computing device based on the another current time of the another clock of the computing device succeeds the current time of the most current revision value based on the clock;

receive the currently revised version of the data element having the new revision value from the computing device via the DSN; and

store the currently revised version of the data element having the new revision value.

10. The SU of claim 9 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

receive the currently revised version of the data element having the adjusted revision value from the computing device via the DSN including to receive at least one other EDSs of another set of EDSs that is generated by the computing device dispersed error encoding another data segment, wherein the threshold number of EDSs of the another set of EDSs are needed to recover the another data segment.

11. The SU of claim 9 , wherein the SU is located at a first location that is remotely located from at least one other SU that is located at a second location within the DSN and that stores at least one other EDS of the set of EDSs associated with the data object.

12. The SU of claim 9 , wherein the computing device includes a portable computing device, a social networking device, a gaming device, a cell phone, a smart phone, a personal digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a video game controller, a fixed computing device, a personal computer, a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, or a video game console.

13. The SU of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

14. A method for execution by a storage unit (SU), the method comprising:

storing in memory of the SU at least one encoded data slice (EDS) of a set of encoded data slices (EDSs) associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, wherein a threshold number of EDSs are needed to recover the data segment;

generating based on a revision level request, a most current revision value for a data element, wherein a revision value of the data element is based on a current time of a clock of the SU, wherein the data element including a data segment that is associated with the data object;

transmitting, via an interface of the SU that is configured to interface and communicate with a distributed storage network (DSN), the most current revision value for the data element to a computing device via the DSN; and

when a current time of a new revision value for a currently revised version of the data element as generated by the computing device based on another current time of another clock of the computing device precedes a current time of the most current revision value based on the dock of the SU;

receiving the currently revised version of the data element having an adjusted revision value from the computing device via the DSN, wherein the adjusted revision value having an effective current time that succeeds the current time of the most current revision value; and

storing in the memory of the SU the currently revised version of the data element having the adjusted revision value.

15. The method of claim 14 further comprising:

receiving the currently revised version of the data element having the adjusted revision value from the computing device via the DSN including to receive at least one other EDSs of another set of EDSs that is generated by the computing device dispersed error encoding another data segment, wherein the threshold number of EDSs of the another set of EDSs are needed to recover the another data segment.

16. The method of claim 14 further comprising:

when the current time of the new revision value for the currently revised version of the data element as generated by the computing device based on the another current time of the another clock of the computing device succeeds the current time of the most current revision value based on the clock;

receiving the currently revised version of the data element having the new revision value from the computing device via the DSN; and

storing in the memory of the SU the currently revised version of the data element having the new revision value.

17. The method of claim 14 further comprising:

receiving the revision level request from the computing device via the DSN; generating a response to the revision level request; and transmitting; via the interface of the SU, the response to the revision level request to the computing device via the DSN to be used, at least in part, by the computing device to determine the current time of the most current revision value.

18. The method of claim 14 , wherein:

the set of EDSs are distributedly stored in a plurality of storage units (SUs) that includes the SU; and the SU is located at a first location that is remotely located from at least one other SU of the plurality of SUs that is located at a second location within the DSN and that stores at least one other EDS of the set of EDSs associated with the data object.

19. The method of claim 14 , wherein the computing device includes a portable computing device, a social networking device, a gaming device, a cell phone, a smart phone, a personal digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a video game controller, a fixed computing device, a personal computer, a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, or a video game console.

20. The method of claim 14 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

Assignments (7)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DOCUMENT EXECUTION DATE FROM Recorded Apr 20, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042288/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042032/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2017
From: BAPTIST, ANDREW; DHUSE, GREG; VOLVOVSKI, ILYA; RESCH, JASON K.; MARK, ZACHARY J.; CILFONE, BART
To: CLEVERSAFE, INC.
Reel/Frame 041599/0982 →