...
Follow the code and read along..
TODO: Chritian's diagram here (fig 3 from his report). Edit to make corrections.
...
- check client's tabletMap (which is a cache of coordinator's tablet map)
- if that tablet is recovering or if the obj was not found in any tablet:
- refresh that cache by:
- refresher(tabletMap) - hardwired to CoordinatorClient::getTabletMap (in the constructor)
- finally return the SessionRef
ObjectFinder.cc -> lookup()
check client's tabletMap (which is a cache of coordinator's tablet map)
if that tablet is recovering or if the obj was not found in any tablet:
refresher(tabletMap) - hardwired to CoordinatorClient::getTabletMap - get a new copy of tabletMap
finally return the SessionRef
Some general information:
On the other hand:
BUFFER contains:
- Transport Layer Header
- Response Header, respHdr (see Rpc.h)
- For ReadRpc, the Response struct has:
- version
- length
- pad
- For ReadRpc, the Response struct has:
- Data (obj->data from above diagram)