IP Library › Granted Patent US 10,007,457
Granted Patent B2
US 10,007,457 · App. 14/978,073 · Granted Jun 26, 2018

Distributed transactions with token-associated execution

Inventors: John Hayes (Mountain View, CA); Robert Lee (Mountain View, CA); Igor Ostrovsky (Mountain View, CA); Peter Vajgel (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F3/0622G06F3/0637G06F3/0688
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 10,007,457
App. No.
14/978,073
Granted
Jun 26, 2018
Kind
B2
Abstract

A method of processing transactions associated with a command in a storage system is provided. The method includes receiving, at a first authority of the storage system, a command relating to user data. The method includes sending a transaction of the command, from the first authority to a second authority of the storage system, wherein a token accompanies the transaction and writing data in accordance with the transaction as permitted by the token into a partition that is allocated to the second authority in a storage device of the storage system.

Claims (49)

1. A method of processing transactions associated with a command in a storage system, comprising:

receiving, at a first authority of the storage system, a command relating to user data;

sending a transaction of the command, from the first authority to a second authority of the storage system, wherein a token is associated with the transaction; and

writing data in accordance with the transaction as permitted by the token into a partition that is allocated to the second authority in a storage device of the storage system, wherein command processing and transaction processing is performed without a global lock on the storage system.

2. The method of claim 1 , further comprising:

allocating, to each of a plurality of authorities of the storage system, a partition in each of at least a subset of a plurality of storage devices, for writing data.

3. The method of claim 1 , wherein each of a plurality of authorities of the storage system can receive commands and can act as a transaction authority for any authority receiving commands.

4. The method of claim 1 , wherein:

each token is time-based; and

presence of a time-based token in one of a plurality of storage nodes of the storage system indicates permission to perform the associated transaction within a time span.

5. The method of claim 1 , further comprising:

processing multiple commands, each having multiple transactions, through multiple authorities in parallel, wherein the writing data associated with each of the multiple transactions for one of the multiple commands indicates the one of the multiple commands is committed.

6. The method of claim 1 , wherein:

neither completion of a transaction nor completion of a command is broadcast throughout the storage system.

7. The method of claim 1 , further comprising:

committing the command once each transaction of the command is written into an allocated partition of the storage device.

8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

receiving, at a first authority of the storage system, a command relating to user data;

sending a transaction of the command, from the first authority to a second authority of the storage system, wherein a token is associated with the transaction; and

writing data in accordance with the transaction as permitted by the token into a partition that is allocated to the second authority in a storage device of the storage system, wherein command processing and transaction processing is performed without a global lock on the storage system.

9. The computer-readable media of claim 8 , wherein the method further comprises:

allocating, to each of a plurality of authorities of the storage system, a partition in each of at least a subset of a plurality of storage devices, for writing data.

10. The computer-readable media of claim 8 , wherein each of a plurality of authorities of the storage system can receive commands and can act as a transaction authority for any authority receiving commands.

11. The computer-readable media of claim 8 , wherein:

each token is time-based; and

presence of a time-based token in one of a plurality of storage nodes indicates permission to perform the associated transaction within a time span.

12. The computer-readable media of claim 8 , wherein the method further comprises:

processing multiple commands, each having multiple transactions, through multiple authorities in parallel, wherein the writing data associated with each of the multiple transactions for one of the multiple commands indicates the one of the multiple commands is committed.

13. The computer-readable media of claim 8 , wherein:

neither completion of a transaction nor completion of a command is broadcast throughout the storage system.

14. The computer-readable media of claim 8 , wherein the method further comprises:

committing the command once each transaction of the command is written into an allocated partition of the storage device.

15. A storage system comprising:

a memory; and

a processing unit having a processor configured to execute actions, the actions comprising:

receiving, at a first authority of the storage system, a command relating to user data;

sending a transaction of the command, from the first authority to a second authority of the storage system, wherein a token is associated with the transaction; and

writing data in accordance with the transaction as permitted by the token into a partition that is allocated to the second authority in a storage device of the storage system,

wherein command processing and transaction processing is performed without a global lock on the storage system.

16. The storage system of claim 15 , wherein the actions further comprise:

allocating, to each of a plurality of authorities of the storage system, a partition in each of at least a subset of a plurality of storage devices, for writing data.

17. The storage system of claim 15 , wherein each of a plurality of authorities of the storage system can receive commands and can act as a transaction authority for any authority receiving commands.

18. The storage system of claim 15 , wherein:

each token is time-based; and

presence of a time-based token in one of a plurality of storage nodes indicates permission to perform the associated transaction within a time span.

19. The storage system of claim 15 , wherein the actions further comprise:

processing multiple commands, each having multiple transactions, through multiple authorities in parallel, wherein the writing data associated with each of the multiple transactions for one of the multiple commands indicates the one of the multiple commands is committed.

20. The storage system of claim 15 , wherein:

neither completion of a transaction nor completion of a command is broadcast throughout the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: HAYES, JOHN; LEE, ROBERT; OSTROVSKY, IGOR; VAJGEL, PETER
To: PURE STORAGE, INC.
Reel/Frame 040732/0757 →
Continuity (1)
Related Publication 20170177253A1 · Jun 22, 2017
Cited By (48)
US 12,197,390 US 12,204,413 US 12,204,768 US 12,204,788 US 12,212,624 US 12,216,903 US 12,229,402 US 12,229,437 US 12,235,743 US 12,236,117 US 12,242,425 US 12,253,922 US 12,253,941 US 12,271,264 US 12,271,359 US 12,277,106 US 12,282,799 US 12,293,111 US 12,314,131 US 12,314,163 US 12,314,170 US 12,314,183 US 12,340,107 US 12,341,848 US 12,366,972 US 12,373,289 US 12,373,340 US 12,379,854 US 12,393,340 US 12,393,353 US 12,430,053 US 12,430,059 US 12,439,544 US 12,475,041 US 12,481,442 US 12,487,920 US 12,511,239 US 12,524,309 US 12,547,317 US 12,561,093 US 12,572,421 US 12,619,469 US 12,682,949 US 12,687,973 US 12,699,512 US 12,717,709 US 12,724,670 US 12,730,571