IP Library Granted Patent US 7,574,570
Granted Patent B2
US 7,574,570 · App. 11/403,684 · Granted Aug 11, 2009

Billing system for information dispersal system

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 7,574,570
App. No.
11/403,684
Granted
Aug 11, 2009
Kind
B2
Abstract

A billing process is disclosed for a information dispersal system or digital data storage system. In one embodiment of the invention, the original data to be stored is separated into a number of data “slices” or shares in such a manner that the data in each subset is less usable or less recognizable or completely unusable or completely unrecognizable by itself except when combined with some or all of the other data subsets. These data subsets are stored on separate digital data storage devices as a way of increasing privacy and security. As dispersed file shares are being stored or removed from a grid of distributed storage locations, a set of metadata tables are created, separate from the dispersed file share storage, to maintain information about the original data size of each block, file or set of file shares dispersed on the grid. The original data size information in these separate metadata tables is used to determine usage information based upon the original file size even though the file has been dispersed onto a storage grid that contains file slices who size may not relate to the original file size and the file slices may have been compressed by the system in order to reduce storage space or improve transmission time. As such, the billing process is able to enable a broad range of commercial billing options for billing for commercial data services on an information dispersal grid.

Claims (41)

1. An information dispersal system comprising:

(a) a plurality of storage nodes operatively coupled to a network;

(b) a server operatively coupled to said network;

(c) a grid client operatively coupled to said network, said grid client communicating an account identifier and a value indicative of an amount of data to be stored to said server over said network, said grid client segmenting information to be stored into a plurality of data slices using an information dispersal algorithm so that the information to be stored may be restored by combining less than all of the plurality of data slices and communicating said plurality of data slices to said plurality of storage nodes over said network; and

wherein said server receives an indication that said plurality of data slices have been successfully stored and increments a total storage value associated with said account identifier by said value indicative of an amount of data to be stored, and generates an invoice based on said total storage value for an entity associated with said account identifier.

2. The information dispersal system of claim 1 wherein said server receives said indication from said grid client.

3. The information dispersal system of claim 1 wherein said grid client compresses said information to be stored prior to segmenting said information to be stored into a plurality of data slices using an information dispersal algorithm.

4. The information dispersal system of claim 3 wherein said value indicative of an amount of data to be stored is indicative of the amount of compressed data.

5. The information dispersal system of claim 4 wherein said storage transaction table is maintained separately from said data slices.

6. The information dispersal system of claim 1 further comprising a billing process operating on said server, said billing process generating said invoice by comparing said total storage value to a lower value associated with a billing range and an upper value associated with a billing range, and invoicing an amount associated with said billing range.

7. The information dispersal system of claim 1 further comprising a storage transaction table storing a plurality of information records describing storage transactions conducted on said information dispersal system, each of said information records including a transaction identifier, an account identifier, and a value indicative of the amount of data that was stored by said storage transaction.

8. An information dispersal system comprising a plurality of networked computers including a plurality of storage nodes, each of said storage nodes storing a plurality of data slices, whereby n of said data slices are associated with a corresponding file, and whereby m of said associated data slices are required to reconstruct said corresponding file, and further whereby m is less than n, said information dispersal system further comprising:

(a) a server operatively coupled to a network;

(b) a grid client operatively coupled to said network, said grid client segmenting information to be stored into a plurality of data slices using an information dispersal algorithm and communicating said plurality of data slices to said plurality of storage nodes over said network, said grid client communicating a value indicative of an amount of data to be stored to said server over said network, said value indicative of an amount of data to be stored based on said information to be stored and calculated prior to the use of said information dispersal algorithm on said information to be stored; and

wherein said server accesses a database separate from said plurality of data slices, said database maintaining a total storage value, and wherein said server increments said total storage value by said value indicative of an amount of data to be stored, and generates an invoice based on said total storage value.

9. A computer networked to an information dispersal system, said information dispersal system comprising a plurality of networked computers including a plurality of storage nodes, each of said storage nodes storing a plurality of data slices, whereby n of said data slices are associated with a corresponding file, and whereby m of said associated data slices are required to reconstruct said corresponding file, and further whereby m is less than n, said computer further comprising:

(a) a database hosting a storage transaction table including a plurality of information records describing storage transactions conducted on said information dispersal system, each of said information records including a transaction identifier and an account identifier indicative of the account with which the transaction is associated; and

(b) a billing process adapted to receive an indication that a storage transaction has been successfully completed by said information dispersal system, said billing process generating an information record and storing said information record in said database.

10. The computer of claim 9 wherein said indication that a storage transaction has been successfully completed is generated by a client computer.

11. The computer of claim 9 further comprising a database hosting a summary billing information table including a second plurality of information records describing the total storage used by different accounts, each of said information records including an account identifier and a value indicative of the size of the data associated with said account identifier.

12. The computer of claim 11 wherein said database hosting a summary billing information table is maintained separately from said data slices.

13. A method of billing for storage in an information dispersal system, the method operating on one or more computers associated with said information dispersal system and comprising the steps of:

(a) determining the original size of the information to be stored;

(b) slicing the information to be stored into a plurality of data slices using an information dispersal algorithm so that the information to be stored may be restored by combining less than all of the plurality of data slices;

(c) dispersing the plurality of data slices to a plurality of storage nodes;

(d) storing the original size of the information separate from said plurality of data slices; and

(e) generating an invoice based on the original size of the information.

14. A method for billing for storage of data to an information dispersal system, the method operating on one or more computers associated with said information dispersal system and comprising the steps of:

(a) associating data to be stored with an account identifier;

(b) generating a value indicative of the amount of data to be stored;

(c) slicing said data into a plurality of data slices using an information dispersal algorithm so that the data to be stored may be restored by combining less than all of the plurality of data slices;

(d) storing said plurality of data slices on a plurality of storage nodes;

(e) generating an indication that said data has been successfully stored;

(f) incrementing a total storage value associated with said account identifier by said value indicative of the amount of data to be stored; and

(g) generating an invoice based on said total storage value for an entity associated with said account identifier.

15. The method of claim 14 , further comprising the step of compressing the data.

16. The method of claim 15 , wherein said step of generating a value generates a value indicative of the amount of compressed data.

17. The method of claim 14 wherein said step of generating an indication is performed on a grid client and further comprising the step of receiving said indication prior to said step of incrementing a total storage value.

18. The method of claim 14 wherein said step of generating an invoice further comprises comparing said total storage value with a lower value associated with a billing range and an upper value associated with said billing range and invoicing an amount associated with said billing range.

19. The method of claim 14 further comprising the step of generating an information record including a transaction identifier, an account identifier, and the value indicative of the amount of data to be stored, and storing said information record in a storage transaction table.

20. The method of claim 19 wherein said storage transaction table is maintained separately from said data slices.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 20, 2013
From: SILICON VALLEY BANK
To: CLEVERSAFE, INC.
Reel/Frame 031058/0255 →
SECURITY AGREEMENT Recorded Oct 11, 2011
From: CLEVERSAFE, INC.
To: SILICON VALLEY BANK
Reel/Frame 027046/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2008
From: CLEVERSAFE, LLC
To: CLEVERSAFE, INC.
Reel/Frame 020437/0344 →
CHANGE OF NAME Recorded Jul 24, 2007
From: GLADWIN, S. CHRISTOPHER; ENGLAND, MATTHEW M.; MARK, ZACHARY J.; THORNTON, VANCE J.; MULLIN, JOSHUA J.; MODI, SEJAL KUMARBHAI
To: CLEVERSAFE, INC.
Reel/Frame 019602/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2006
From: GLADWIN, S. CHRISTOPHER, ET AL; ENGLAND, MATTHEW M.; MARK, ZACHARY J.; THORNTON, VANCE T.; MULLIN, JOSHUA J.; MODI, SEJAL KUMARBHAI
To: CLEVERSAFE, LLC
Reel/Frame 018283/0001 →