Google Summer of Code 2015

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

We intend to participate in the Google Summer of Code 2015. MariaDB and the MariaDB Foundation believe we are making a better database that remains a drop-in replacement to MySQL. We also work on making LGPL connectors (currently in C, Java, C++ in development) and on MariaDB Galera Cluster, which allows you to scale your reads & writes. Lately, we also have MariaDB MaxScale which is a pluggable database proxy.

Where to start

Please join us at at #maria to mingle with the community. Don't forget to subscribe to (this is the main list where we discuss development).

At the moment, tasks that may be suitable for GSoC 2015 are listed in the MariaDB Issue Tracker under «GSoC 2015 tasks»

Some suggested projects

Enhancing mysqlbinlog

This project consists of two parts -- it can either be performed by 2 students or 1 student with the relevant skills:

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. See MDEV-4989 for more information.

Skills: C/C++

Mentor: Kristian Nielsen

mysqlbinlog in MySQL 5.6 also supports streaming binlog servers for backups. This is important as the MHA tool can also use this feature. See MDEV-5993 for more information.

Mentor: Svoj

Indexes on virtual columns

We have the concept of virtual (non-materialized) columns, and currently to have an index on a virtual column one has to materialize it. To support indexes on fully virtual columns, a storage engine must call back into the server to calculate the value of the virtual column. See MDEV-5800.

Skills: C/C++

Mentor: Sergei Golubchik

UDFs returning arrays

Having the possibility that User Defined Functions (UDFs) to return arrays / result sets would be a nice feature to have. A possible implementation could be: the UDF exports a generator, we create a handler of the hidden "storage engine" class, no indexes, and convert this generator to rnd_init/rnd_next. Need to disable rnd_pos somehow.

Skills: C/C++

Mentor: Sergei Golubchik

User defined events

User defined events are supported on several other databases in different form and semantics (like DB2, PostgreSQL, etc.). Events are used to signal an named event in the database. Applications can use named events instead of polling, which uses more resources. See MDEV-5532 for a proper spec.

Skills: C/C++

Mentor: Jan Lindström

GIS enhancements to MariaDB

GIS enhancements for 10.1 that we want to work on include adding support for altitude (the third coordinate), converters (eg. ST_GeomFromGeoJSON - ST_AsGeoJSON, ST_GeomFromKML - ST_AsKML, etc.), Getting data from SHP format (shp2sql convertor), as well as making sure we are fully OpenGIS compliant. MDEV-5813

Skills: C/C++

Mentor: Holyfoot

Provide GTID support for MHA

MySQL Master HA (MHA) is a tool to assist with automating master failover and slave promotion within short downtime, without suffering from replication consistency problems, and without performance penalty. We would like to have this tool support MariaDB 10 GTIDs.

Skills: Perl

Mentor: Colin Charles

Port InnoDB memcached interface to MariaDB

MySQL 5.6 has a memcached plugin to InnoDB. MySQL 5.7 has improved performance of this. The task would be to port this to run against MariaDB, and make it work against XtraDB/InnoDB for the 10.2 series of MariaDB.

See MDEV-4674 for more.

Skills: C/C++

Mentor: Colin Charles

Query rewrite plugin API

The task is to create a plugin API and an example plugin to do query transformations. This API should not force plugin to parse or work with the SQL string. Instead it may provide a DOM-like representation of the query and let the plugin to manipulate the tree nodes.

Skills: C/C++

Mentor: Stephane Varoqui

Skills: C/C++

Suggest a task

Are you a student interested in working on something? Let us know here.


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.