-
Notifications
You must be signed in to change notification settings - Fork 690
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 Efficient Set Reconciliation algorithm #3934
Comments
I tested minisketch it works, but we won't be able to use it. |
It was me who provided that white paper, not @evgenykuzyakov. |
@abacabadabacaba Sorry, fixed. |
I did some early benchmarking |
I tested the time it takes to recover the difference, assuming we use 4 hashes. |
That should be fine, we need to spend 2ms to verify each edge, for 1m edges that would take 30m. |
Here is a link to implementation, I also added benches: |
@abacabadabacaba You had some ideas during the meeting on how to improve BLT. Would you mind writing them down here? |
I implemented full algorithm for syncing. You can see how it works in a unit test: https://github.com/pmnoxx/near-set-reconciliation/blob/21bcdfee1a1c30e11f8df729fc49ebcc7f0af5cf/sr-playground/src/blt_graph.rs#L99 |
This issue has been automatically marked as stale because it has not had recent activity in the last 2 months. |
#4112 is merged |
We should implement and test a few different approaches to Set Reconciliation problem.
White paper provided by @abacabadabacaba
https://www.ics.uci.edu/~eppstein/pubs/EppGooUye-SIGCOMM-11.pdf
I found one existing rust library for Set Reconciliation : https://crates.io/crates/minisketch-rs
You can find explanation how it works here https://github.com/sipa/minisketch/blob/de98387a83ccd5dd7399333ddcf52e1d4f344e53/README.md
Benchmark estimatormake into template to support both u64, u32estimate how good estimator isWhat if we don’t use estimator, but so log n round trips, each time sending bigger ibfCuckoo Filter: Practically Better Than Bloom
known algorithms
https://www.ics.uci.edu/~eppstein/pubs/EppGooUye-SIGCOMM-11.pdf
performance
inserting 1m elements (3 hashes) - 60ms
recover 10k elements - 0.9ms
recover 100k elements - 10.5ms
recover 1m elements - 195ms
The text was updated successfully, but these errors were encountered: