HIERARCHICAL HOST-BASED STORAGE
A method of accessing a memory record in distributed network storage, comprising: storing a plurality of memory records in a plurality of network nodes, each stores a file system segment of a file system mapping the memory records, each file system segment maps a subset of the memory records; receiving, by a storage managing module of a first network node, a request for accessing one of the memory records from an application executed in the first network node; querying a file system segment stored in the first network node for the memory record; when the memory record is missing, querying for an address of a second network node, wherein the memory record is stored in the second network node; and providing said first network node with an access to said memory record at said second network node via a network according to said address.
1 . A method of accessing a memory record in distributed network storage, comprising:
storing a plurality of memory records in a plurality of network nodes, each one of said plurality of network nodes storing a plurality of file system segments of a file system mapping said plurality of memory records, each one of said plurality of file system segments maps a subset of said plurality of memory records;
receiving, by a storage managing module of a first network node of said plurality of network nodes, a request for accessing one of said plurality of memory records, said request is received from an application executed in said first network node;
querying a first file system segment stored in said first network node for said memory record;
when said memory record is missing from said first memory records subset, querying for an address of a second network node of said plurality of network nodes, wherein said memory record is stored in a second memory records subset of said second network node; and
providing said first network node with an access to said memory record at said second network node via a network according to said address.
2 . The method of claim 1 , wherein said providing comprises establishing a direct communication channel between said first network node and said second network node via said network according to said address to provide said access.
3 . The method of claim 1 , wherein said querying for said address includes:
sending a request to a catalog service via said network; and
receiving a reply message from said catalog service, said reply message including said address.
4 . The method of claim 1 , wherein said querying for said address includes sending a request to each of said plurality of network nodes to receive said address.
5 . The method of claim 1 , wherein said querying for said address includes querying for a last known location of said memory record cached in said a first file system segment.
6 . The method of claim 1 , wherein said second network node temporarily blocks write access to said memory record for said first network node when said memory record is currently accessed by any other of said plurality of network nodes.
7 . The method of claim 6 , wherein said second network node temporarily blocks access to said memory record for said first network node when said memory record is currently written by any other of said plurality of network nodes.
8 . The method of claim 1 , wherein a copy of said memory record is also stored in a third of said plurality of network nodes.
9 . The method of claim 8 , further comprising:
when said second network node is unavailable, querying for an address of said third network node; and
establishing a direct communication channel between said first network node and said third network node via said network according to said address to provide access to said memory record.
10 . The method of claim 1 , wherein a copy of said memory record is also stored in said first network node and may be accessed instead of accessing the memory record at said second network node via said network.
11 . The method of claim 1 , further comprising, before said querying:
querying for an address of a directory containing said memory record; and
querying for an address of said memory record in said directory.
12 . The method of claim 1 , wherein said memory record includes multiple file segments.
13 . The method of claim 1 , wherein said querying for said address includes providing an inode number of said memory record.
14 . The method of claim 1 , wherein said querying for said address includes providing a layout number of said memory record.
15 . A computer readable medium comprising computer executable instructions adapted to perform the method of claim 1 .
16 . A system of managing a distributed network storage, comprising:
a file system segment stored in a first of a plurality of network nodes, said file system segment is one of a plurality of file system segments of a file system mapping a plurality of memory records;
a program store storing a storage managing code; and
a processor, coupled to said program store, for implementing said storage managing code, the storage managing code comprising:
code to receive an access request to a memory record of said plurality of memory records from an application executed in said first network node;
code to query said file system segment for said memory record in said first memory records subset;
code to query for an address of a second network node of said plurality of network nodes when said memory record is missing form said first memory records subset, wherein said memory record is stored in a second memory records subset of said second network node; and
code to provide said first network node with an access to said memory record at said second network node via a network according to said address.
17 . A distributed network storage system, comprising:
a plurality of network nodes connected via a network, each including a storage managing module;
a plurality of file system segments of a file system, each stored in one of said plurality of network nodes;
a plurality of memory records managed by said plurality of file system segments, wherein each of said plurality of memory records is owned by one of said plurality of network nodes and stored in at least one of said plurality of network nodes; and
wherein when an application executed in a first of said plurality of network nodes requests an access to one of said plurality of memory records, and said memory record is missing from a memory records subset stored in said first network node, a storage managing module included in said first network node queries for an address of a second network node of said plurality of network nodes, wherein said memory record is stored in a second memory records subset of said second network node; and providing said first network node with an access to said memory record at said second network node via a network according to said address.
18 . A method of creating a memory record in distributed network storage, comprising:
storing a plurality of memory records in a plurality of network nodes, each one of said plurality of network nodes storing a plurality of file system segments of a file system mapping said plurality of memory records, each one of said plurality of file system segments maps a subset of said plurality of memory records;
receiving, by a storage managing module of a first network node of said plurality of network nodes, a request for creating a new of said plurality of memory records, said request is received from an application executed in said first network node;
creating said memory record in said first network node; and
registering said memory record in a catalog service via said network.
19 . The method of claim 18 , wherein said creating includes assigning a prefix unique to said first network node to an inode number of said memory record.