trachten / cpisync

A library for synchronizing remote data with minimum communication.
GNU General Public License v3.0
26 stars 11 forks source link

Add multiset support for IBLT #66

Closed arorashu closed 4 years ago

arorashu commented 4 years ago

Added multiset implementation for IBLT, that uses modular(residual) sums. Created a new Sync IBLTSync_Multiset that derives from IBLTSync, similar to the existing IBLTSync_HalfRound.

Tests done

All existing test cases pass.
Added new test case for multiset IBLT

This addresses Issue#63 and Issue#64.

arorashu commented 4 years ago

Function pointers were the easiest way to get the same performance as inheritance, but with minimal code changes, i.e. we don't have to change IBLT usage in the code anywhere. However, I am working on a different implementation that does this using inheritance/templates now.

trachten commented 4 years ago

thanks! Function pointers are messy because they can easily get corrupted ...

On Jul 20, 2020, at 4:26 PM, 7/20/20, Shubham Arora notifications@github.com wrote:

Function pointers were the easiest way to get the same performance as inheritance, but with minimal code changes, i.e. we don't have to change IBLT usage in the code anywhere. However, I am working on a different implementation that does this using inheritance/templates now.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/trachten/cpisync/pull/66#issuecomment-661315105, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACM5LUZ7EJWEV5INQA6W7RTR4SR7ZANCNFSM4O2WHHIA.


Ari Trachtenberg, Boston University http://people.bu.edu/trachten mailto:trachten@bu.edu

Random quote of the day: 
"For me, it is important to remember, but it is far more important to remember to act." - Simon Wiesenthal 
arorashu commented 4 years ago

Updated with class based implementation

novakboskov commented 4 years ago

Updated with class based implementation

Great! I'm going to review this today.