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

Max value version of eleveldb #2

Open
wants to merge 38 commits into
base: master
Choose a base branch
from

Conversation

santialvarezcolombo
Copy link
Contributor

This first PR, contains the initial implementation of the elevledb version of antidote_db.

Here is an overview of the new architecture proposed:

antidote_db

More information of how this works, can be found in the README.

…t attempt of using antidote_utils, not working 100% yet.
to match the new architecture proposed, making it ready to support
othr backends.
of AntidoteDB, when a non existent type is passed.
that has the mac value of the VC as part of the key
This tests are not running yet, so the originals are still in place.
@marc-shapiro
Copy link

Congratulations. How well has this been tested? We cannot afford to add instability to the main branch at this late point.

                Marc

Le 27 oct. 2016 à 01:39, Santiago Alvarez Colombo notifications@github.com a écrit :

This first PR, contains the initial implementation of the elevledb version of antidote_db.

Here is an overview of the new architecture proposed:

https://cloud.githubusercontent.com/assets/2179572/19748884/0caddd42-9bbb-11e6-85e9-3b4cb3277b4d.png
More information of how this works, can be found in the README.

You can view, comment on, or merge this pull request online at:

#2 #2
Commit Summary

first version of antidote_db with eleveldb as backend
added options to fold methods
fix esport parameters for fold methods
antidote db sup first version
fix bug while passing keys to binary
Added antidote_db_wrapper, originally on the main Antidote repo. First attempt of using antidote_utils, not working 100% yet.
Changed dependency for antidote utils branch
Fixed branch in rebar config for antidote utils dependency
Added the licence to missing files
Switched branch order in get_ops to make code more readable
Fixed accumulation in the resulting list of the get_ops method
Updated the wrapper with to use the log_record provided in antidote_utils
Updated spec return type in get_ops
Renamed and refactored the antidote_db and the leveldb_wrapper
Added a test for to check the reutnr type in all methods
Changes to use the materealized_snapshot in antidote_uti.s
Fixed upper bound in get_ops method
Added the get_ops_applicable_to_snapshot method and it's tests.
Refactored tests and added comments
Added the get_ops_applicable_to_snapshot method to the antidote_db interface
Fixed lower bound in get_ops range
Fixed bug with concurrent ops
Fixed begening key to start looking in fold
First version using the bigger DC ordering function
New version with redefined logic to check that a VC is in the required range in get_ops method
First working version with the latest version of the comparator
Refactor + code cleanup
Migration to rebar3
Created the test folder with the leveldb_wrapper suite.
Added proper
Fixed range when VCs have different keys
Removed tests in the leveldb_wrapper module since they are replaced with the ones in the _SUITE
Added the antidote_db_SUITE for testing antidote_db module
Updated get_snapshot method to match new sorting order
Added meck dependecy for mocking
Tests for antidote_db module using meck
Update README.md
File Changes

M .gitignore https://github.com/SyncFree/antidote_db/pull/2/files#diff-0 (22)
M README.md https://github.com/SyncFree/antidote_db/pull/2/files#diff-1 (36)
A rebar.config https://github.com/SyncFree/antidote_db/pull/2/files#diff-2 (26)
A src/antidote_db.app.src https://github.com/SyncFree/antidote_db/pull/2/files#diff-3 (13)
A src/antidote_db.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-4 (114)
A src/antidote_db_sup.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-5 (45)
A src/leveldb_wrapper.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-6 (199)
A test/antidote_db_SUITE.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-7 (123)
A test/eleveldb_wrapper_SUITE.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-8 (229)
A test/prop_db_wrapper.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-9 (118)
A test/prop_get_ops.erl https://github.com/SyncFree/antidote_db/pull/2/files#diff-10 (111)
Patch Links:

https://github.com/SyncFree/antidote_db/pull/2.patch https://github.com/SyncFree/antidote_db/pull/2.patch
https://github.com/SyncFree/antidote_db/pull/2.diff https://github.com/SyncFree/antidote_db/pull/2.diff

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub #2, or mute the thread https://github.com/notifications/unsubscribe-auth/AGWtn7lfceCbTgWEJgluVgVIHQC7P4Xoks5q3-S9gaJpZM4Khyq8.

@santialvarezcolombo
Copy link
Contributor Author

The eunit tests cover simple cases and the interesting ones we found in the last weeks + 94% of the code. The code was also tested with 200 000 Proper random test cases, with no failures.

This PR is for the master branch of this repo. Merging this code will have no impact in Antidote code. I will try the antidote_db without interfering with the main branch in Antidote, so there is nothing to worry.

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.

5 participants