DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Implement ScyllaDB Datastore module for Apache Gora
Organization: Apache Software Foundation
Project: Apache Gora
Potential Mentors: Kevin Ratnasekera
Issues: GORA-657
Student: Arne Nissen
Introduction
Apache Gora is at Object to datastore mapping data persistence framework similar to Object relational mapping frameworks such as Hibernate, JPA however Apache Gora stands out from these providing easy to use in memory data bean model and more importantly data store specific mappings which allows to utilizes full data model of non-relational/NoSQL databases. Gora currently supports persistent datastores that write to HBase, Cassandra, Mongodb, DynamoDB. Gora uses avro as a serialization mechanism.
Scylla is an open-source distributed NoSQL data store. It was designed to be compatible with Apache Cassandra while achieving significantly higher throughputs and lower latencies. It supports the same protocols as Cassandra (CQL and Thrift) and the same file formats (SSTable), but is a completely rewritten implementation, using the C++17 language replacing Cassandra's Java, and the Seastar asynchronous programming library replacing threads, shared memory, mapped files, and other classic Linux programming techniques.
At the moment Gora doesn’t support ScyllaDB. This proposal is about adding Scylla DB support for Apache Gora.
Solution
I will use driver https://docs.scylladb.com/using-scylla/scylla-java-driver/ for the development since this driver is the widely used java scylla db driver.
Since Apache Gora have already support for Cassandra, reuse it’s architecture module to support Scylla DB.
Implement Scylla DB Data Store.
Deliverables
Implement ScyllaDB Store
Implement Test cases and Samples
Documenting the usage and the functionality of the module
Scheduling
Period | Activities | Progress |
Community Bonding - May 5 - May 31 | - Get a broad understanding in Apache Gora and Scylla DB - Setup the Development Environment - Go thru ScyllaDB documentation about the Data model and driver API - Explore about the different features available scylla db - Simple POC for connecting to the DB | |
Coding period - June 1 - June 28 | - Design mapping file - Start the implementation on Data Store - Implement support for the DataStore methods initialize, get, put, create schema, delete schema. | |
Evaluation - June 29 - July 3, 2019 | - Improve code or deliverables based on suggestions from the mentor. | |
Coding period - July 4- July 27 | - Implement support for the DataStore Query Execution execute query, partition query, delete by query. - Testing the functionality of the current implementation and improve the functionality - Implement unit tests | |
Evaluation - July 28 - July 31 | - Improve code or deliverables based on suggestions from the mentor. | |
Coding period - August 1 - August 24 | - Complete Implementation for the ScyllaDB module - Implement unit tests - ScyllaDB documentation for the website | |
Final evaluation - August 25 - August 31 | - Improve code or deliverables based on suggestions from the mentor. |
About Me
I am Arne Nissen <arnenissen70569@gmail.com> a Computer Science Engineering undergraduate student at University of Stuttgart. I’m 24 years’ old. I love Computer Science. This is my first GSOC application
Commitment
I plan to dedicate most of my time to this project. I have contributed to several open source projects and honestly, I plan to work around 30-40 hours per week in this project in order to complete it successfully.
Community Engagement
[1] Subscribed the dev list