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

Implement Exposed Blockstores #6705

Closed
vyzo opened this issue Jul 8, 2021 · 0 comments · Fixed by #6762
Closed

Implement Exposed Blockstores #6705

vyzo opened this issue Jul 8, 2021 · 0 comments · Fixed by #6762
Assignees
Labels
team/ignite Issues and PRs being tracked by Team Ignite at Protocol Labs
Milestone

Comments

@vyzo
Copy link
Contributor

vyzo commented Jul 8, 2021

With splitstore v1 (see #6474) there is now a real distinction between the exposed blockstore abstraction and the underlying blockstore.
Network requests can pin references into the hotstore during compaction, which can result in keeping unwanted data hot even though they are unreachable from the chain.

In order to communicate the origin of network requests, we propose an ExposableBlockstore trait/optional interface which provides a view of the blockstore with network request awareness in relevant codepaths.
The trait looks like this:

type ExposableBlockstore interface {
  Expose() Blockstore
}

The splitstore can implement the trait and provide a view that bypasses transactional protection for all reads.

The exposed blockstore abstraction is currently hooked through DI to chainxchg/bitswap, but we also need to hook it to the blockstore exposed through json-rpc.

@vyzo vyzo self-assigned this Jul 8, 2021
@vyzo vyzo added the team/ignite Issues and PRs being tracked by Team Ignite at Protocol Labs label Jul 8, 2021
@jennijuju jennijuju added this to the 1.11.1 milestone Jul 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team/ignite Issues and PRs being tracked by Team Ignite at Protocol Labs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants