Design and Implementation of an object-oriented mapping framework for the Antidote database (Bachelor-/ Master-thesis)
Antidote is a distributed key-value database with support for replicated data types (CRDTs).
When interacting with a database from an object oriented language like Java, data has to be mapped between Java objects and a suitable representation in the database. For relational databases object-relational mapping libraries and/or tools are often used to do this.
A popular example is the Hibernate ORM library for Java. The library supports using Java annotations to specify the database mapping directly in the code. The Java Reflection API is used to read and process the annotations at runtime.
The goal of this thesis is to develop an object oriented mapping tool for Antidote. The tool should be built on top of the Antidote Java Client.
The main challenge here is to design and implement the tool, such that it is:
- Easy to use for programmers.
- Flexible enough to choose between different representations on the database level. For example an integer in Java can be represented by different CRDTs in Antidote: a counter, an integer, a last-writer-wins register, or a multi-value register.
The usability of the library should be evaluated by porting an existing application to the newly developed library.
- Good Programming knowledge in Java
- Basics of databases
- (optional) experience with some ORM library
- (optional) experience with Annotations and Reflection in Java
- Antidote Database
- Marc Shapiro, Nuno M. Preguiça, Carlos Baquero, Marek Zawirski: A comprehensive study of Convergent and Commutative Replicated Data Types. INRIA Technical Report RR-7506, January 2011. http://hal.inria.fr/inria-00555588