trachten / cpisync

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

DatasetGenerator - classes of reconciliation tests #73

Open arorashu opened 4 years ago

arorashu commented 4 years ago

Addresses Issue#62

Create DatasetGenerator class to create different standard types of datasets. Accepts isMultiset and isLargeSync as boolean flags to generate these specific datasets as well.

arorashu commented 4 years ago

The failing tests for CPISync are probably due to Issue#74. I will need to take a look why the CuckooSyncTest fails.

novakboskov commented 4 years ago

What I see in the CI build report is very weird. For example, it says that CuckooSyncTest.cpp:61:Assertion fails and that assertion is still commented out in your code, should not be executed at all (you seem not to pull from master recently, see #71).

Could you please merge master to your branch and make sure why these tests fail?

novakboskov commented 4 years ago

Additionally, consider supporting the very basic test set generation function that would just simply return two std::multiset<shared_ptr<DataObject>>, as DataObject is our primary abstraction for the set elements. Set A and the set B, just to keep it simple.

arorashu commented 4 years ago

What I see in the CI build report is very weird. For example, it says that CuckooSyncTest.cpp:61:Assertion fails and that assertion is still commented out in your code, should not be executed at all (you seem not to pull from master recently, see #71).

So this is because Github merges the two branches itself, and runs the CI on the merge. I validated it from the CI output.

Could you please merge master to your branch and make sure why these tests fail?

Yeah, in effect the test failures are resultant of merging with master

novakboskov commented 4 years ago

@arorashu I see... Can you please look a bit closer into that to find the root cause of those failures?

arorashu commented 4 years ago

@novakboskov Yeah, added some relevant info at Issue#75

arorashu commented 4 years ago

So, CPISync fails for the case where server is empty. I have currently narrowed it down to the CPISync::set_reconcile function. For the case where server is empty, it does not populate the delta_self and delta_other entries. I will update when I have fixed that.

arorashu commented 4 years ago

Increasing Cuckoo filter size from 2^8 to 2^17, gives better sync performance at the expense of running time