A high availability, high reliability storage system that leverages rapid advances in commodity computing devices and the robust nature of internetwork technology such as the Internet. A system of parity distribution in accordance with the present invention allows for greater fault tolerance and levels of storage efficiency than possible with conventional RAID (levels 0 5) paradigms. Data can be recovered or made available even in the case of loss of N, N+1, or more devices or storage elements over which stripes of the data set have been distributed or partitioned. The present invention provides a parity distribution that can be used to distribute data stored in a single storage device or across multiple connected or otherwise networked devices
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
The present invention is a continuation of U.S. Ser. No. 09/782,613, now U.S. Pat. No. 6,826,711, filed on Feb. 13, 2001 which claims the benefit of U.S. Provisional Patent Application Ser. No. 60/183,762 for: "System and Method for Decentralized Data Storage" filed Feb. 18, 2000, and U.S. Provisional Patent Application Ser. No. 60/245,920 filed Nov. 6, 2000 entitled "System and Method for Decentralized Data Storage" the disclosures of which are herein specifically incorporated by this reference.
A method and device for provisioning another device with an application. The golden image of the application, representing a source copy of the application, is stored at a first storage location in a central storage device. A copy of the golden image is generated prior to receiving a request for the golden image. The copy of the golden image is stored at a second storage location in the central storage device. The second storage location is mapped to a device that needs a copy of the golden image, wherein the device is operable to execute the application in communication with the central storage device. Once this device has been provisioned with the copy of the golden image, another copy is made in anticipation of another request. In this manner, the time needed to provision a device is substantially reduced.
A fault-tolerant system for storage arrays has constraints on the number of data from which each redundancy value is computed. The fault-tolerant system has embodiments that are supported on small array sizes to arbitrarily large array sizes, and can tolerate a large number T of failures. Certain embodiments can tolerate many instances of more than T failures. The fault-tolerant system has efficient XOR-based encoding, recovery, and updating algorithms and has simple redundancy formulas. The fault-tolerant system has improved IO seek costs for certain multiple-element sequential host updates.
In one embodiment, a method is provided that may include generating, at least in part by first circuitry comprised in an integrated circuit, check data based at least in part upon other data, and/or determining at least in part by the first circuitry, one or more locations of the check data and/or the other data in storage. The first circuitry may be capable of regenerating the other data based at least in part upon the check data. The method also may include issuing a request from second circuitry also comprised in the integrated circuit requesting that a wireless communication device transmit the other data, and/or receiving, by the second circuitry, a request issued from the wireless device, to retrieve the other data. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.
A data storage system comprising a plurality of storage nodes, each node existing at a physical location having one or more contexts. Interface mechanisms couple to each storage node to communicate storage access requests with the storage node. Data storage management processes select one or more of the storage nodes to serve a data storage request based at least in part upon the particular contexts of each of the storage nodes.
A data storage system comprising a plurality of storage nodes, each node existing at a physical location having one or more contexts. Interface mechanisms couple to each storage node to communicate storage access requests with the storage node. Data storage management processes select one or more of the storage nodes to serve a data storage request based at least in part upon the particular contexts of each of the storage nodes.