Peer-to-Peer Redundant File Server System and Methods
First Claim
1. A file storage system, for handling a standard file system request including a path name, the system comprising:
- a plurality of storage providers;
a client, in communication with the storage providers, that accepts the file system request and generates, for fulfillment, a corresponding reformatted request to a selected one of the storage providers, the selected one of the storage providers being initially selected by the client on the basis of a hashing algorithm applied to at least a portion of the path name, so that the client serves as an interface between the standard file system request and the storage providers.
8 Assignments
0 Petitions
Accused Products
Abstract
Peer-to-peer redundant file server system and methods include clients that determine a target storage provider to contact for a particular storage transaction based on a pathname provided by the filesystem and a predetermined scheme such as a hash function applied to a portion of the pathname. Servers use the same scheme to determine where to store relevant file information so that the clients can locate the file information. The target storage provider may store the file itself and/or may store metadata that identifies one or more other storage providers where the file is stored. A file may be replicated in multiple storage providers, and the metadata may include a list of storage providers from which the clients can select (e.g., randomly) in order to access the file.
734 Citations
46 Claims
-
1. A file storage system, for handling a standard file system request including a path name, the system comprising:
-
a plurality of storage providers; a client, in communication with the storage providers, that accepts the file system request and generates, for fulfillment, a corresponding reformatted request to a selected one of the storage providers, the selected one of the storage providers being initially selected by the client on the basis of a hashing algorithm applied to at least a portion of the path name, so that the client serves as an interface between the standard file system request and the storage providers. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for locating a given file in a file storage system having one or more storage providers, the given file associated with a file pathname including a sequence of directory names and a file name, the method comprising:
-
a. applying, in a computer process, a hashing algorithm to a chosen one of the directory names to obtain an index number, wherein the hashing algorithm has the property that different index numbers may be obtained for different directory names; b. identifying a selected storage provider associated with the obtained index number; and c. contacting the selected storage provider number in order to obtain information maintained by the selected storage provider regarding the location of the given file within the file storage system, whereby the given file may be located whether the given file is stored by the selected storage provider and/or by one or more other storage providers. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of providing access by a client to a file in a storage system, the file associated with a file pathname, the method comprising:
-
a. storing an instantiation of the file in each of a plurality of storage providers; b. storing metadata for the file in a target storage provider selected based at least in part on the pathname using a predetermined mapping scheme, the metadata including at least a list of the storage providers; c. sending a request by the client to the target storage provider; d. providing the list of the storage providers by the target storage provider to the client in response to the request; e. selecting one of the listed storage providers by the client using a predetermined selection scheme; and f. communicating with the selected storage provider by the client in order to access the file instantiation stored in the selected storage provider. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A storage system comprising:
-
a client; and a storage provider in communication the client over a communication network, the storage provider including a plurality of storage nodes, each storage node managed by a different storage server, wherein the plurality of storage nodes are associated with a multicast address and requests are transmitted to the storage provider using the multicast address.
-
-
24. A storage system comprising:
-
a client; a storage provider in communication the client over a communication network, the storage provider including a plurality of storage nodes and a distributed queuing mechanism allowing tasks to be queued for processing by one or more of the storage nodes. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A storage system comprising:
-
a client; and a storage provider in communication the client over a communication network, the storage provider including a plurality of storage nodes, wherein one of the storage nodes is designated to act as a proxy for the plurality of nodes for managing storage of data among the plurality of storage nodes and interacting with the client on behalf of the other storage nodes. - View Dependent Claims (31, 32, 33, 34)
-
- 35. A storage system comprising a plurality of storage providers for distributed storage of files associated with a filesystem, wherein each storage provider maintains statistics regarding the files that it stores, and wherein the statistics are collected by a designated storage provider for processing.
-
37. A method of distributing processing load across a plurality of storage providers, the method comprising:
-
determining that multiple clients desire access to a file stored by a given storage provider; replicating the file in at least one additional storage provider such each of storage providers, including the given storage provider, stores an instantiation of the file; and allowing clients to access any of the instantiations of the file so as to distribute processing load across the storage providers. - View Dependent Claims (38, 39)
-
-
40. A method for maintaining peer set nodes of a computer file storage system, the method comprising:
-
identifying waiting nodes associated with a current peer set based on a node-selection algorithm, the node-selection algorithm producing, at a root node, in a first computer process, an updated list of the current peer set nodes; and in a second computer process, conducting a dialog among the identified nodes, the dialog establishing a hierarchy and role distribution among the nodes. - View Dependent Claims (41, 42, 43, 44, 45, 46)
-
Specification