Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fetch Blks rpc should always fetch the blks from consumer #414

Open
hkadayam opened this issue May 10, 2024 · 1 comment
Open

Fetch Blks rpc should always fetch the blks from consumer #414

hkadayam opened this issue May 10, 2024 · 1 comment
Assignees
Milestone

Comments

@hkadayam
Copy link
Contributor

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.

@xiaoxichen
Copy link
Collaborator

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants