HomeStore icon indicating copy to clipboard operation
HomeStore copied to clipboard

Fetch Blks rpc should always fetch the blks from consumer

Open hkadayam opened this issue 1 year ago • 1 comments

Fetch Blocks RPC when sent to existing member, responds with the data from HomeStore layer itself. The RPC sent all the neccessary information, <dsn, lsn, remote_blkid, key, header>. At present homestore uses remote_blkid (which is local_blkid for this node) and read the data from data_service and fill the data.

In case of HomeObject, this is an issue, because the blkid could have been GC'd and moved to a different block location. The GC does not go through the replication/journal. As a result, reading the blkid could corrupt the follower's data. So homestore needs to use header, key -> pass it on to the consumer and let consumer provide the latest data (just like read_blob path) and respond back to homestore.

hkadayam avatar May 10 '24 16:05 hkadayam

This is needed and become a bug once we have GC.

Pushing this a bit later as GC is pushing to later milestone.

xiaoxichen avatar Aug 14 '24 14:08 xiaoxichen