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

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 (9)
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 →