Method for handling requests in a storage system and a storage node for a storage system
First Claim
1. A method for handling requests in a storage system, the storage system including a plurality of storage nodes connected to each other via a communications network, the method comprising:
- a first storage node of the plurality of storage nodes receiving a first request, wherein data stored within the data storage system is organized using a distributed directory structure, a plurality of collection objects distributed among the plurality of storage nodes correspond to directories or subdirectories in the distributed directory structure, the first storage node stores a first collection object corresponding to a directory in the distributed directory structure, the first collection object comprises a reference to a second collection object stored on at least a second storage node in the storage system, the second collection object corresponding to a first subdirectory of the directory represented by the first collection object, the reference to the second collection object comprises a unique identifier for the second collection object, and the first request implicates a plurality of directory tree levels of the distributed directory structure;
the first storage node determining that a second request is to be sent based on the first request implicating data associated with the first subdirectory and based on the first subdirectory being included in the plurality of directory tree levels implicated by the first request, the first subdirectory being represented by the second collection object;
the first storage node determining to which storage nodes the second request should be sent by;
the first storage node sending a first multicast message that includes the unique identifier for the second collection object included in the reference to the second collection object,the first storage node receiving a response to the first multicast message from at least the second data storage node, andthe first storage node determining to send the second request to at least the second storage node based on the second storage node responding to the first multicast message;
the first storage node sending the second request to at least the second storage node storing the second collection object referenced by the first collection object using a unicast message, wherein the second request indicates a number of directory tree levels that are implicated by the second request, the number of directory tree levels that are implicated by the second request is one level less than the plurality of directory tree levels implicated by the first request, and the second collection object comprises a reference to a third collection object stored on at least a third storage node and a reference to a data file stored in the data storage system;
the first storage node receiving a second response to the second request from the second storage node, the second response comprising at least information obtained from the third storage node storing the third collect object referenced by the second collection object; and
the first storage node sending a first response to the first request, the first response comprising at least the information obtained from the third storage node that is included in the second response.
3 Assignments
0 Petitions
Accused Products
Abstract
According to an embodiment there is provided a method for handling requests in a storage system including a plurality of storage nodes connected to each other via a communications network. A first storage node of the plurality of storage nodes may store a reference to a set of at least one collection object stored in the storage system. Each collection object of the set may include at least one of a reference to another collection object stored in the storage system and a reference to at least one data file stored in the storage system. The method may include receiving a first request at the first storage node. The first storage node, for each collection object of the set, may send a second request to a storage node storing the collection object. According to a second aspect there is also provided a storage node.
176 Citations
19 Claims
-
1. A method for handling requests in a storage system, the storage system including a plurality of storage nodes connected to each other via a communications network, the method comprising:
-
a first storage node of the plurality of storage nodes receiving a first request, wherein data stored within the data storage system is organized using a distributed directory structure, a plurality of collection objects distributed among the plurality of storage nodes correspond to directories or subdirectories in the distributed directory structure, the first storage node stores a first collection object corresponding to a directory in the distributed directory structure, the first collection object comprises a reference to a second collection object stored on at least a second storage node in the storage system, the second collection object corresponding to a first subdirectory of the directory represented by the first collection object, the reference to the second collection object comprises a unique identifier for the second collection object, and the first request implicates a plurality of directory tree levels of the distributed directory structure; the first storage node determining that a second request is to be sent based on the first request implicating data associated with the first subdirectory and based on the first subdirectory being included in the plurality of directory tree levels implicated by the first request, the first subdirectory being represented by the second collection object; the first storage node determining to which storage nodes the second request should be sent by; the first storage node sending a first multicast message that includes the unique identifier for the second collection object included in the reference to the second collection object, the first storage node receiving a response to the first multicast message from at least the second data storage node, and the first storage node determining to send the second request to at least the second storage node based on the second storage node responding to the first multicast message; the first storage node sending the second request to at least the second storage node storing the second collection object referenced by the first collection object using a unicast message, wherein the second request indicates a number of directory tree levels that are implicated by the second request, the number of directory tree levels that are implicated by the second request is one level less than the plurality of directory tree levels implicated by the first request, and the second collection object comprises a reference to a third collection object stored on at least a third storage node and a reference to a data file stored in the data storage system; the first storage node receiving a second response to the second request from the second storage node, the second response comprising at least information obtained from the third storage node storing the third collect object referenced by the second collection object; and the first storage node sending a first response to the first request, the first response comprising at least the information obtained from the third storage node that is included in the second response. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A data storage system comprising a plurality of storage nodes, wherein:
-
a first storage node of the plurality of storage nodes is configured to; store a first collection object corresponding to a directory in a distributed directory structure, the first collection object comprising a reference to a second collection object stored at least at a second storage node, wherein data stored within the data storage system is organized using the distributed directory structure, a plurality of collection objects distributed among the plurality of storage nodes correspond to directories or subdirectories in the distributed directory structure, the second collection object corresponds to a first subdirectory of the directory represented by the first collection object, and the reference to the second collection object comprises a unique identifier for the second collection object; receive a first request from a server accessing the data storage system, wherein the first request implicates a plurality of directory tree levels of the distributed directory structure, determine that a second request is to be sent based on the first request implicating data associated with the first subdirectory included in the plurality of directory tree levels, the first subdirectory being represented by the second collection object; determine to which storage nodes the second request should be sent by being configured to; send a first multicast message that includes the unique identifier for the second collection object included in the reference to the second collection object, receive a response to the first multicast message from at least the second data storage node, and determine to send the second request to at least the second storage node based on the second storage node responding to the first multicast message; send the second request to at least the second storage node storing the second collection object using a unicast message in response to receiving the first request, wherein the second request indicates a number of directory tree levels that are implicated by the second request, and the number of directory tree levels that are implicated by the second request is one level less than the plurality of directory tree levels implicated by the first request; the second storage node of the plurality of storage nodes is configured to; store the second collection object, wherein the second collection object comprises a reference to a third collection object stored on at least a third storage node of the plurality of storage nodes and a reference to a data file stored in the data storage system, receive the second request from first storage node, and send a third request to the third storage node in response to receiving the second request, wherein the third request is sent to the third storage node based on the third collection object corresponding to one of the number of directory tree levels implicated by the second request; the third storage node is configured to receive and process the third request, and send a third response to the second storage node in response to the third request; the second storage node is configured to receive and process the third response, and send a second response to the first storage node, the second response being formed based on the third response; and the first storage node is configured to receive and process the second response, and send a first response to the server, the first response being formed based on the second response. - View Dependent Claims (16)
-
-
17. A data storage node of a data storage system, the data storage node comprising a processor configured to:
-
receive a first request, wherein data stored within the data storage system is organized using a distributed directory structure, a plurality of collection objects distributed among a plurality of storage nodes correspond to directories or subdirectories in the distributed directory structure, the storage node is configured to store a first collection object corresponding to a directory in the distributed directory structure, the first collection object comprises a reference to a second collection object stored on at least a second storage node in the storage system, the second collection object corresponding to a first subdirectory of the directory represented by the first collection object, the reference to the second collection object comprises a unique identifier for the second collection object, and the first request implicates a plurality of directory tree levels of the distributed directory structure; determine that a second request is to be sent based on the first request implicating data associated with the first subdirectory and based on the first subdirectory being included in the plurality of directory tree levels implicated by the first request, the first subdirectory being represented by the second collection object, wherein the second collection object comprises a reference to a third collection object stored on at least a third storage node and a reference to a data file stored in the data storage system; determine to which storage nodes the second request should be sent by being configured to; send a first multicast message that includes the unique identifier for the second collection object included in the reference to the second collection object, receive a response to the first multicast message from at least the second data storage node, and determine to send the second request to at least the second storage node based on the second storage node responding to the first multicast message; send the second request to at least the second storage node storing the second collection object referenced by the first collection object using a unicast message, wherein the second request indicates a number of directory tree levels that are implicated by the second request, the number of directory tree levels that are implicated by the second request is one level less than the plurality of directory tree levels implicated by the first request, and the second collection object comprises a reference to a third collection object stored on at least a third storage node and a reference to a data file stored in the data storage system; receive a second response to the second request from the second storage node, the second response comprising at least information obtained from the third storage node storing the third collection object referenced by the second collection object; and send a first response to the first request, the first response comprising at least the information obtained from the third storage node that is included in the second response. - View Dependent Claims (18, 19)
-
Specification