Use an vector to store all shards' datastore instead of use a shared_mutex.
Avoid creating a new CallbackData object every time we call functions of DataStoreServiceClient.
Remove rpc channel from all closures. Just fetch channel when use it.
Check whether the datastore is on current node at receive request instead of in datastore.