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

shared-log: Efficient sync #276

Open
marcus-pousette opened this issue Feb 12, 2024 · 2 comments
Open

shared-log: Efficient sync #276

marcus-pousette opened this issue Feb 12, 2024 · 2 comments

Comments

@marcus-pousette
Copy link
Member

marcus-pousette commented Feb 12, 2024

Problem
Currently the syncing mechanisms is not very efficient.

  • Memory consumption: It requires participants to keep all heads hashes and other metadata in RAM
  • Syncing performance: When syncing entries with an remote without any prior information, it needs to check all relevant hashes with the remote. Once the first sync has been performed, the cache will make subsequent syncs faster at it will only look at changes from the last sync. The issue is still that many syncs need to be efficient also when syncing without any previous information about the peer

Solution
Implement a syncing mechanism that have following features:

  • Uses disc storage
  • Uses some kind of set reconciliation

E.g. https://github.com/AljoschaMeyer/set-reconciliation

#274

@eL1x00r
Copy link

eL1x00r commented Feb 24, 2024

bump

@marcus-pousette
Copy link
Member Author

marcus-pousette commented Feb 25, 2024

@eL1x00r Working on a PR here #278 but not done yet. Seems like a little bigger task then initially thought since I also am considering implementing live query features #200 at the same time, so I don't close any doors when doing the abstraction for index engines. Another estimation for completion is around 2-3 weeks

For this specific issue (efficient sync), it is more about improving the protocol for syncing activities which might become a bottleneck later, but not a one that is troubling you now. The work for a solution on this issue will commence once #274 and #200 are resolved

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

No branches or pull requests

2 participants