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

Hot Cold Set #718

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Hot Cold Set #718

wants to merge 4 commits into from

Conversation

l-monninger
Copy link
Collaborator

@l-monninger l-monninger commented Oct 21, 2024

Summary

  • RFCs: $\emptyset$.
  • Categories: protocol-units

The Hold-Cold Set protocol is best described in the doc comment on the hot_cold_set::set module. It is roughly a 3PC protocol for synchronizing set inclusion. Its initial motivation was to create means for writing to a "hot" set used by the application which should not grow indefinitely and a "cold" set that backs up the set used by application which may be periodically groomed by an operator.

This PR introduces the protocol and a simple rocksdb implementation.

Forthcoming PRs will introduce:

  • The HotColdCheckpointSet which is intended to store members as in a Hot-Cold Set as they are tagged for different checkpoints.
  • A completed rocksb implementation containing a persisted bloom filter as the probabilistic storage used by the Hot Set.
  • A poem API from HotColdSet and HotColdCheckpointSet abstraction.
  • A gRPC API from HotColdSet and HotColdCheckpointSet abstraction.
  • An integration with the bridge-service to write to the sets and serve the necessary APIs.

This are omitted here as they are incomplete and for the sake of some brevity.

Testing

  1. Unit tests for the general protocol are provided against reliable and unreliable structs.
  2. rocksdb implementation is unit tested.

Outstanding issues

  1. See forthcoming PRs.
  2. Unit tests have not yet been added to the CI.

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

Successfully merging this pull request may close these issues.

1 participant