Google Summer of Code 2018

You are viewing an old version of this article. View the current version here.

This year, again, we want to participate in the Google Summer of Code. The MariaDB Foundation believes we are making a better database that remains application compatible with MySQL. We also work on making LGPL connectors (currently C, ODBC, Java) and on MariaDB Galera Cluster, which allows you to scale your reads & writes. And we have MariaDB ColumnStore, which is a columnar storage engine, designed to process petabytes of data with real-time response to analytical queries.

Where to start

Please join us at irc.freenode.net at #maria to mingle with the community. Don't forget to subscribe to maria-developers@lists.launchpad.net (this is the main list where we discuss development).

A few handy tips for any interested students who are unsure which projects to choose: Blog post from former GSoC student & mentor

List of tasks

The complete list of tasks suggested for GSoC 2018 is located in the MariaDB Jira. A subset is listed below.

Support for GTID in mysqlbinlog

The mysqlbinlog tool needs to be updated to understand the replication feature called Global Transaction IDs (GTIDs) in MariaDB 10. The current version does not support GTIDs and the MySQL variant does not speak MariaDB 10's GTIDs.

Details:MDEV-4989
Skills:C/C++
Mentor:

Automatic provisioning of slave

The purpose of this task is to create an easy-to-use facility for setting up a new MariaDB replication slave.

Details:MDEV-7502
Skills:C/C++
Mentor:

mysqltest improvements

mysqltest is a client utility that runs tests in the mysql-test framework. It sends sql statements to the server, compares the results with the expected results, and uses a special small DSL for loops, assignments, and so on. It's pretty old and very ad hoc with many strange limitations. It badly needs a proper parser and a consistent logical grammar.

Details:MDEV-12130
Skills:C/C++
Mentor:Sergei Golubchik

connection encryption plugins

Encrypting the client-server communications is closely related to authentication. Normally SSL is used for the on-the-wire encryption, and SSL can be used to authenticate the client too. GSSAPI can be used for authentication, and it has support for on-the-wire encryption. This task is about making on-the-wire encryption pluggable.

Details:MDEV-9090
Skills:C/C++
Mentor:Sergei Golubchik

Histograms with equal-width bins in MariaDB

For engine-independent statistics MariaDB currently uses equal-height histograms. In certain use cases equal-width histograms might be beneficial. This task is to add support for equal-width histograms.

Details:MDEV-12313
Skills:C/C++
Mentor:Igor Babaev

Cassandra Storage Engine V2

Current Cassandra Storage Engine was developed against Cassandra 1.1 and it uses Thrift API to communicate with Cassandra. However, starting from Cassandra 1.2, the preferred way to access Cassandra database is use CQL (Cassandra Query Language) and DataStax C++ Driver (https://github.com/datastax/cpp-driver). Thrift-based access is deprecated and places heavy constraints on the schema.

This task is about re-implementing Cassandra Storage Engine using DataStax C++ Driver and CQL.

Details:MDEV-12296
Skills:C/C++
Mentor:Sergei Petrunia

ColumnStore: Add full support for DECIMAL

We are currently limited to 18 digit DECIMAL support due to the 8 byte limitation of regular ColumnStore columns. The initial version for GSoC should implement DECIMAL > 8 bytes as a ColumnStore dictionary column as used for CHAR/VARCHAR/etc... when they exceed 8 bytes.

Details:MCOL-641
Skills:C/C++
Mentor:Andrew Hutchings

ColumnStore: Add a read API to mcsapi

mcsapi currently has support to bulk-write data directly into MariaDB ColumnStore using a simple C++ API. This needs to be extended to add an ORM-style interface to support reads as well.

Details:MCOL-1151
Skills:C/C++
Mentor:Andrew Hutchings

Suggest a task

Do you have an idea of your own, not listed above or in Jira? Do let us know!

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.