IP Library Granted Patent US 8,086,797
Granted Patent B2
US 8,086,797 · App. 12/479,403 · Granted Dec 27, 2011

Method and system for distributing commands to targets

Assignee: PIVOT3
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,086,797
App. No.
12/479,403
Granted
Dec 27, 2011
Kind
B2
Abstract

Embodiments of systems and methods for routing commands to a distributed RAID system are disclosed. Specifically, embodiments may route a command to an appropriate data bank in a distributed RAID system, where each data bank has a set of associated storage media and executes a similar distributed RAID application. The distributed RAID applications on each of the data banks coordinate among themselves to distribute and control data flow associated with implementing a level of RAID in conjunction with data stored on the associated storage media of the data banks.

Claims (47)

1. A system for implementing distributed RAID, comprising:

a distributed RAID system comprising a plurality of data bank computers, each data bank coupled to each host and each of the other plurality of data banks, each data bank including:

a processor; and

a data store;

a first computer readable medium comprising instructions executable for:

implementing commands in conjunction with a volume, wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of the plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume; and

a set of hosts, each host comprising:

a processor;

a second computer readable medium, comprising instructions executable for:

obtaining a first command corresponding to a first segment of the volume;

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

routing the command to the first data bank.

2. The system of claim 1 , wherein determining the first data bank is done by a device specific module (DSM).

3. The system of claim 2 , wherein the DSM comprises a table comprising the permutation of the plurality of data banks.

4. Claim 3 , wherein the second computer readable medium further comprises instructions for updating the table by obtaining the table from one of the plurality of data banks.

5. A method for determining a data bank of a distributed RAID system, the method implemented on a host computer having a processor, comprising:

obtaining a first command corresponding to a first segment of a volume implemented on a distributed RAID system comprising a plurality of data banks wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of the plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume,

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

routing the command to the first data bank.

6. The method of claim 5 , wherein determining the first data bank is done by a device specific module (DSM).

7. The method of claim 6 , wherein the DSM comprises a table comprising the permutation of the plurality of data banks.

8. The method of claim 7 , further comprising updating the table by obtaining the table from one of the plurality of data banks.

9. A method for routing commands from a host computer to a distributed RAID system implemented in one or more data bank computers, comprising:

obtaining a first command corresponding to a first segment of a volume implemented on a distributed RAID system comprising a plurality of data banks wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of the plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume,

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

routing the command to the first data bank;

receiving the command corresponding to a first segment of a volume from a host; and

executing the first command with respect to the first segment, wherein the first command is executed on the first data bank.

10. The method of claim 9 , wherein determining the first data bank is done by a device specific module (DSM).

11. The method of claim 10 , wherein the DSM comprises a table comprising the permutation of the plurality of data banks.

12. The method of claim 11 , further comprising updating the table by obtaining the table from one of the plurality of data banks.

13. A computer readable medium for determining a data bank of a distributed RAID system, the computer readable medium comprising instructions executable for:

obtaining a first command corresponding to a first segment of a volume implemented on a distributed RAID system comprising a plurality of data banks wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of the plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume,

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

routing the command to the first data bank.

14. The computer readable medium of claim 13 , wherein determining the first data bank is done by a device specific module (DSM).

15. The computer readable medium of claim 14 , wherein the DSM comprises a table comprising the permutation of the plurality of data banks.

16. The computer readable medium of claim 15 , wherein the instructions are further executable for updating the table by obtaining the table from one of the plurality of data banks.

17. A computer readable medium for routing commands from a host computer to a distributed RAID system implemented in one or more data bank computers, the computer readable medium comprising instructions executable for:

obtaining a first command corresponding to a first segment of a volume implemented on a distributed RAID system comprising a plurality of data banks wherein the volume comprises a set of segments, and the set of segments of the volume are stored on the plurality of data banks according to a data bank order, where the data bank order is a permutation of the plurality of data banks and redundancy data corresponding to a RAID level implemented in conjunction with the volume is stored on each of the plurality of data banks, such that for each segment of the volume a corresponding redundancy segment comprising the redundancy data associated with that segment of the volume does not reside on the same data bank as the corresponding segment of the volume,

determining a first data bank of the plurality of data banks, wherein the first data bank corresponds to the first segment; and

routing the command to the first data bank;

receiving the command corresponding to a first segment of a volume from a host; and

executing the first command with respect to the first segment, wherein the first command is executed on the first data bank.

18. The method of claim 17 , wherein determining the first data bank is done by a device specific module (DSM).

19. The method of claim 18 , wherein the DSM comprises a table comprising the permutation of the plurality of data banks.

20. The method of claim 19 , the instructions further executable for updating the table by obtaining the table from one of the plurality of data banks.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2026
From: PIVOT3, INC.; NEXGEN STORAGE, INC.
To: CYPRESSWOOD SOLUTIONS LLC
Reel/Frame 074747/0523 →
INTELLECTUAL PROPERTY RELEASE Recorded Jan 4, 2024
From: RUNWAY GROWTH FINANCE CORP.
To: PIVOT3, INC.; NEXGEN STORAGE, INC.
Reel/Frame 066193/0189 →
RELEASE OF SECURITY INTEREST Recorded May 15, 2019
From: PACIFIC WESTERN BANK
To: PIVOT3, INC.
Reel/Frame 049186/0154 →
SECURITY INTEREST Recorded May 13, 2019
From: PIVOT3, INC.; NEXGEN STORAGE, INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 049164/0117 →
RELEASE OF SECURITY INTEREST Recorded Mar 28, 2016
From: COMERICA BANK
To: PIVOT3, INC.
Reel/Frame 038114/0207 →
SECURITY INTEREST Recorded Mar 22, 2016
From: PIVOT3, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038068/0092 →
CORRECTIVE DOCUMENT FOR ASSIGNEE'S NME FOR ASSIGNMENT ORIGINALLY RECORDED AT REEL 023029 FRAME 0954 Recorded Aug 28, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; MCGOWEN, MICHAEL E.
To: PIVOT3, INC.
Reel/Frame 028856/0751 →
CORRECTIVE DOCUMENT FOR ASSIGNMENT ORIGINALLY RECORDED AT REEL/FRAME 023029/0954 Recorded Jul 27, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; MCGOWAN, MICHAEL E.
To: PIVOT3, INC.
Reel/Frame 028669/0323 →
SECURITY AGREEMENT Recorded Nov 17, 2009
From: PIVOT3, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 023525/0365 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2009
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; MCGOWEN, MICHAEL E.
To: PIVOT3
Reel/Frame 023029/0954 →
Continuity (7)
Provisional Application 61131270 · Jun 6, 2008
Provisional Application 61131314 · Jun 6, 2008
Provisional Application 61131291 · Jun 6, 2008
Provisional Application 61131290 · Jun 6, 2008
Provisional Application 61131379 · Jun 6, 2008
Provisional Application 61131312 · Jun 6, 2008
Related Publication 20090307425A1 · Dec 10, 2009