From the Bigtable paper I’ve read, I understand that Bigtable data is split into multiple tablets.
It follows a 3 tier hierarchy.
The file location of the first tablet/Root tablet is obtained by querying Chubby service.
The Root tablet contains the file location of the Metadata tablet files.
The Metadata tablets contain the location of the User data. It contains the location of SSTs and Log file of each user tablet.
All the three types of tablets are loaded by Tablet Servers. The tablet assignment is the responsibility of Master server.
Now what I don’t understand is that, to actually read any tablet, the client needs to send a read request to an appropriate Tablet Server. How does the client get to know of this? Where is the mapping stored? Does the client query the master server? Isn’t that going to put heavy load on the single master server?
1