...
- When it is running - run() - it is continuously polling for rpcs by:
- handleRpc<MasterServer>()
- In Server.h, handleRpc<>() is hardwired to call dispatch() amongst doing other things.
- Thus, when an rpc is received:
- dispatch() -> callHandler<>() -> MasterServer::read()
NOTE about code flow:
When xClient - sendRecv, ?where x is Coordinator or Master
xServer - handleRpc<>() -> dispatch() -> callHandler<>() -> .. NOTE about code flow:
When xClient - sendRecv, ?where x is Coordinator or Master
xServer - handleRpc<>() -> dispatch() -> callHandler<>() -> ..
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:
- 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:
...