Skip to content

Instantly share code, notes, and snippets.

@gyounes
Last active August 20, 2016 11:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gyounes/de1709f254e84812713079d34786afc8 to your computer and use it in GitHub Desktop.
Save gyounes/de1709f254e84812713079d34786afc8 to your computer and use it in GitHub Desktop.
Links of the files changed (work done) + description + summary
These two files are contain common structures\functionalities that are used for all the data types implemented.
These were both written by me, checked by mentor and merged to the master repository.
https://github.com/lasp-lang/types/blob/master/src/pure_trcb.erl
https://github.com/lasp-lang/types/blob/master/src/pure_polog.erl
List of commits:
https://github.com/lasp-lang/types/commits/master?author=gyounes
This part was also not as exactly planned in the GSoC proposal. Instead of implementing the TRCB as it is supposed to be, my mentor and I agreed to implement a more advanced version of this middleware that is capable to cover a broader range of use cases. This way it can also be used more by the open source community: when they need a tagged reliable causal broadcast middleware, we hope that ishikawa would be a great solution.
This work is still in progress and will continue after the GSoC period.
https://github.com/lasp-lang/ishikawa/blob/trcb/include/ishikawa.hrl
https://github.com/lasp-lang/ishikawa/blob/trcb/src/trcb.erl
https://github.com/lasp-lang/ishikawa/blob/trcb/src/mclock.erl
https://github.com/lasp-lang/ishikawa/blob/trcb/src/ishikawa_backend.erl
The list of commits are below:
https://github.com/lasp-lang/ishikawa/commits/trcb?author=gyounes
The following links are for all the pure operation-based data types implemented in Lasp.
These were all written by me, checked by mentor and merged to the master repository.
https://github.com/lasp-lang/types/blob/master/include/pure_type.hrl
https://github.com/lasp-lang/types/blob/master/src/pure_type.erl
https://github.com/lasp-lang/types/blob/master/src/pure_gcounter.erl
https://github.com/lasp-lang/types/blob/master/src/pure_pncounter.erl
https://github.com/lasp-lang/types/blob/master/src/pure_gset.erl
https://github.com/lasp-lang/types/blob/master/src/pure_twopset.erl
https://github.com/lasp-lang/types/blob/master/src/pure_aworset.erl
https://github.com/lasp-lang/types/blob/master/src/pure_rworset.erl
https://github.com/lasp-lang/types/blob/master/src/pure_mvreg.erl
https://github.com/lasp-lang/types/blob/master/src/pure_dwflag.erl
https://github.com/lasp-lang/types/blob/master/src/pure_ewflag.erl
List of commits:
https://github.com/lasp-lang/types/commits/master?author=gyounes
Original Plan
• Get more familiar with Lasp and state-based implementation and decide what is the best way to implement op-based CRDTs. [100%]
• Implement op-based CRDTs. [100%]
• Test and Evaluate. [Test only without full evaluation]
• Compare with state-based. [Not done]
Works Done without being in the Original plan:
• Implement a more advanced version of the Tagged reliable causal broadcast (ishikawa)
• Implement op-based CRDTs with no compaction to verify the correctness and convergence of the pure op-based CRDTs.
• Contributed in the generic platform that allows the evaluation between state-based, delta-state-based, classic op-based and pure op-based CRDTs.
Work that still needs to be done:
• Test and fixes for ishikawa
• Evaluation and eventual improvements
As the work being done and Lasp itself look very promising, especially for my thesis, we will be working to continue the unfinished tasks
after the GSoC period. I will be contributing in Lasp with the guiding of my mentor, my supervisor and all the awesome people of BEAM Community.
This file implements the query function for all the data types implemented. The purpose of this was not in the plan for GSoC but we found it would be very useful in the future to have a way to measure and verify the correctness of the expectd behaviour.
This was written by me, checked by mentor and merged to the master repository.
https://github.com/lasp-lang/types/blob/master/src/pure_no_compaction.erl
List of commits:
https://github.com/lasp-lang/types/commits/master?author=gyounes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment