Method and apparatus for scalable distributed storage
First Claim
1. A scalable distributed storage apparatus comprising a network, the apparatus further comprising:
- a plurality of independent nodes connected to each other through the network, each independent node comprising at least one storage device;
wherein each independent node responds with the same identifier when a client device attaches to any one independent node from the plurality of independent nodes.
0 Assignments
0 Petitions
Accused Products
Abstract
Independent nodes (66) providing storage services can be networked together, such that client devices (60, 61) can be attached to any independent node (66c, 66d), while independent nodes (66) identify themselves to client devices (60, 61) uniformly. Each independent node (66) would have the same name, address or other identification data with respect to each client device (60, 61). When data stored in a specific independent node (66) are accessed by a client device (60, 61) connected to a different independent node (66c, 66d), the request is forwarded to the independent node that where the requested data is stored. That independent node (66) can either respond to the client device (60, 61) directly or forward the response to another independent node (66) which can send the response back to the client device (60, 61).
35 Citations
51 Claims
-
1. A scalable distributed storage apparatus comprising a network, the apparatus further comprising:
-
a plurality of independent nodes connected to each other through the network, each independent node comprising at least one storage device;
wherein each independent node responds with the same identifier when a client device attaches to any one independent node from the plurality of independent nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A scalable distributed storage apparatus comprising a network, the apparatus further comprising:
-
a plurality of independent nodes connected to each other through the network;
a plurality of network storage devices connected to each other and the plurality of independent nodes through the network;
wherein each independent node responds with the same identifier when a client device attaches to any one independent node from the plurality of independent nodes. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A scalable distributed storage apparatus comprising a network, the apparatus further comprising:
-
a plurality of independent computing means connected to each other through the network;
a plurality of network storage means connected to each other and the plurality of independent computing means through the network;
wherein each independent computing means responds with the same identifier when a client means attaches to any one independent computing means from the plurality of independent computing means.
-
-
28. A method of handling data on a scalable distributed storage apparatus comprising a plurality of independent nodes, wherein a plurality of client devices can attach to several of the independent nodes, the method comprising:
-
attaching a client device to an independent node;
transmitting a predetermined identifier to each of the client devices when the client device attaches to a selected one of the plurality of independent nodes;
requesting data from the scalable distributed storage apparatus through the independent node to which the client device is attached;
forwarding the data request to the plurality of independent nodes;
receiving the requested data from at least one of the plurality of independent nodes and caching the requested data at the independent node to which the requesting client device is attached; and
notifying at least one of the plurality of independent nodes of the location of the cached requested data. - View Dependent Claims (29, 30, 31)
-
-
32. A computer program product for processing data requests on a scalable distributed storage apparatus comprising a plurality of independent nodes, wherein a plurality of client devices can attach to several of the independent nodes, the computer program product comprising:
-
software instructions for enabling an independent node to perform predetermined operations, and a computer readable medium bearing the software instructions;
the predetermined operations comprising;
processing an attachment request from a client device to the independent node;
transmitting a predetermined identifier to each of the client devices when the client device attaches to a selected one of the plurality of independent nodes;
processing a data request to the scalable distributed storage apparatus through the independent node to which the client device is attached;
forwarding the data request to the plurality of independent nodes;
receiving the requested data from at least one of the plurality of independent nodes and caching the requested data at the independent node to which the requesting client device is attached; and
notifying at least one of the plurality of independent nodes of the location of the cached requested data. - View Dependent Claims (33, 34, 35)
-
-
36. An executable program for an independent node in a scalable distributed storage apparatus, the executable program comprising:
-
a first executable code portion which, when executed on the independent node, processes an attachment request from a client device to the independent node;
a second executable code portion which, when executed on the independent node, transmits a predetermined identifier to the client device from the independent node, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
a third executable code portion which, when executed on the independent node, processes a data request to the scalable distributed storage apparatus through the independent node to which the client device is attached;
a fourth executable code portion which, when executed on the independent node, forwards the data request to the plurality of independent nodes;
a fifth executable code portion which, when executed on the independent node, receives the requested data from at least one of the plurality of independent nodes and caches the requested data at the independent node to which the requesting client device is attached; and
a sixth executable code portion which, when executed on the independent node, notifies at least one of the plurality of independent nodes of the location of the cached requested data.
-
-
37. An executable program for an independent node in a scalable distributed storage apparatus, the executable program comprising:
-
software means for attaching a client device to the independent node;
software means for a predetermined identifier to the client device from the independent node, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
software means for processing a data request to the scalable distributed storage apparatus through the independent node to which the client device is attached;
software means for forwarding the data request to the plurality of independent nodes;
software means for receiving the requested data from at least one of the plurality of independent nodes and caches the requested data at the independent node to which the requesting client device is attached; and
software means for notifying at least one of the plurality of independent nodes of the location of the cached requested data.
-
-
38. A computer system adapted to storing data from a plurality of storage systems on a storage medium, the computer system comprising:
-
a processor;
a memory comprising software instructions adapted to enable the computer system to perform the steps of;
processing an attachment request from a;
client device to the computer system;
transmitting a predetermined identifier to the client device from the computer system, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
processing a data request to a scalable distributed storage apparatus through the computer system to which the client device is attached;
forwarding the data request to the scalable distributed storage apparatus;
receiving the requested data from the scalable distributed storage apparatus and caching the requested data at the computer system to which the requesting client device is attached; and
notifying the scalable distributed storage apparatus of the location of the cached requested data.
-
-
39. A method of handling data on a scalable distributed storage apparatus comprising a plurality of independent nodes, wherein a plurality of client devices can attach to several of the independent nodes, the method comprising:
-
attaching a client device to an independent node;
transmitting a predetermined identifier to the client device from the independent node, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
receiving a new data input from the client device attached to the scalable distributed storage apparatus through the independent node;
determining whether the new data input is new data to be stored or an update to previously stored data, and based on that determination, storing the new data input on the scalable distributed storage apparatus, if it is new data to be stored, or updating the previously stored data on the scalable distributed is storage apparatus, if it is an update to previously stored data; and
transmitting a notification to the attached client device if the storing of the new data input was successful. - View Dependent Claims (40, 41, 42, 43)
-
-
44. A computer program product for processing data requests on a scalable distributed storage apparatus comprising a plurality of independent nodes, wherein a plurality of client devices can attach to several of the independent nodes, the computer program product comprising:
-
software instructions for enabling an independent node to perform predetermined operations, and a computer readable medium bearing the software instructions;
the predetermined operations comprising;
attaching a client device to an independent node;
transmitting a predetermined identifier to the client device from the independent node, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
receiving a new data input from the client device attached to the scalable distributed storage apparatus through the independent node;
determining whether the new data input is new data to be stored or an update to previously stored data, and based on that determination, storing the new data input on the scalable distributed storage apparatus, if it is new data to be stored, or updating the previously stored data on the scalable distributed storage apparatus, if it is an update to previously stored data; and
transmitting a notification to the attached client device if the storing of the new data input was successful. - View Dependent Claims (45, 46, 47, 48)
-
-
49. An executable program for an independent node in a scalable distributed storage apparatus, the executable program comprising:
-
a first executable code portion which, when executed on the independent node, processes an attachment request from client device to the independent node;
a second executable code portion which, when executed on the independent node, transmits a predetermined identifier to the client device from the independent node, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
a third executable code portion which, when executed on the independent node, receives a new data input from the client device attached to the scalable distributed storage apparatus through the independent node;
a fourth executable code portion which, when executed on the independent node, determines whether the new data input is new data to be stored or an update to previously stored data, and based on that determination, storing the new data input on the scalable distributed storage apparatus, if it is new data to be stored, or updating the previously stored data on the scalable distributed storage apparatus, if it is an update to previously stored data; and
a fifth executable code portion which, when executed on the independent node, transmits a notification to the attached client device if the storing of the new data input was successful.
-
-
50. An executable program for an independent node in a scalable distributed storage apparatus, the executable program comprising:
-
software means for attaching a client device to the independent node;
software means for transmitting a predetermined identifier to the client device from the independent node, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
software means for receiving a new data input from the client device attached to the scalable distributed storage apparatus through the independent node;
software means for determining whether the new data input is new data to be stored or an update to previously stored data, and based on that determination, storing the new data input on the scalable distributed storage apparatus, if it is new data to be stored, or updating the previously stored data on the scalable distributed storage apparatus, if it is an update to previously stored data; and
software means for transmitting a notification to the attached client device if the storing of the new data input was successful.
-
-
51. A computer system adapted to storing data from a plurality of storage systems on a storage medium, the computer system comprising:
-
a processor;
a memory comprising software instructions adapted to enable the computer system to perform the steps of;
attaching a client device to the computer system;
transmitting a predetermined identifier to the client device from the computer system, wherein the predetermined identifier is identical to the identifier transmitted to other attached client devices;
receiving a new data input from the client device attached to the computer system;
determining whether the new data input is new data to be stored or an update to previously stored data, and based on that determination, storing
-
Specification