If ShardedStore#rollback() is called, journal is rolled back and the shard pointers are updated.
However the internal state (data) remains unchanged. So on next taskDistribute the rolled back data in shard are restored.
We need to:
taskDistribute() must attach versionID from journal to shards
on ShardedStore#rollback find versionID of last distribution and rollback all shards to this versionId
If
ShardedStore#rollback()
is called, journal is rolled back and the shard pointers are updated. However the internal state (data) remains unchanged. So on nexttaskDistribute
the rolled back data in shard are restored.We need to:
taskDistribute()
must attachversionID
from journal to shardsShardedStore#rollback
find versionID of last distribution and rollback all shards to this versionId