|
1.How does a client get block information from file servers....when client requests one file to process...the request goes to cldb ...then how it is going to find out which block is stored in which container? and if I am running 3 cldbs all are going to have same container info. Can any one please explain me in detail.
|
|
No. The request goes to the directory that holds the file. That directory returns information about which containers the file data is stored in. Usually the locations of those containers is cached, but if not, the CLDB is asked for that information. Once the containers and locations are known, the data is retrieved directly from the nodes that have the data. For the next read of the file, all this information is cached, so requests are made directly to the nodes with the data. The directory is consulted to check permissions, but all locations are already known so no further CLDB requests are need. When another file in the same directory is read, all the container locations will probably already be known so that will go as fast a secondary reads on the first file. The file client never asks the CLDB about block locations. This is because the CLDB doesn't know the block locations. The master CLDB is the only one that modifies the container location data, but all modifications are written to a well-known container. That allows any of the slave CLDB's to take over almost instantly if there is a problem. The take-over is just a matter of the CLDB starting to write data to the CLDB container to record the new replication pattern for the special container. Hi Ted, Thanks for the information. Can you please point us to a document, which gives overview of MapR architecture and also explaining the role of each component within MapR.
(08 Feb, 00:00)
ghousia
|