On Sat, Aug 18, 2012 at 2:13 AM, Lin Ma <[email protected]> wrote: > Hello guys, > > I am referencing the Big Table paper about how a client locates a tablet. > In section 5.1 Tablet location, it is mentioned that client will cache all > tablet locations, I think it means client will cache root tablet in > METADATA table, and all other tablets in METADATA table (which means client > cache the whole METADATA table?). My question is, whether HBase implements > in the same or similar way? My concern or confusion is, supposing each > tablet or region file is 128M bytes, it will be very huge space (i.e. > memory footprint) for each client to cache all tablets or region files of > METADATA table. Is it doable or feasible in real HBase clusters? Thanks. >
Yeah, we client cache's locations, not the data. > BTW: another confusion from me is in the paper of Big Table section 5.1 > Tablet location, it is mentioned that "If the client’s cache is stale, the > location algorithm could take up to six round-trips, because stale cache > entries are only discovered upon misses (assuming that METADATA tablets do > not move very frequently).", I do not know how the 6 times round trip time > is calculated, if anyone could answer this puzzle, it will be great. :-) > I'm not sure what the 6 is about either. Here is a guesstimate: 1. Go to cached location for a server for a particular user region, but server says that it does not have a region, the client location is stale 2. Go back to client cached meta region that holds user region w/ row we want, but its location is stale. 3. Go to root location, to find new location of meta, but the root location has moved.... what the client has is stale 4. Find new root location and do lookup of meta region location 5. Go to meta region location to find new user region 6. Go to server w/ user region St.Ack
