Google Summer of Code 2022

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

This year we are again participating 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, C++, ODBC, Java, Node.js) 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 on Zulip to mingle with the community. You should also subscribe to maria-developers@lists.launchpad.net (this is the main list where we discuss development).

To improve your chances of being accepted, it is a good idea to submit a pull request with a bug fix to the server.

Also see the List of beginner friendly issues from the MariaDB Issue Tracker.

List of Tasks

MariaDB Server

  • MDEV-21978 make my_vsnprintf to use gcc-compatible format extensions (Part-time project - 175h)
    MariaDB has its own implementation of most standard C libraries. This is to ensure compatibility across different platforms. Over time this library has evolved and is currently not behaving exactly like POSIX standard library. Thus we want to attain the principle of "least-surprise" with this library. Everything that is supported by standard printf functions should function the same with MariaDB's compatibility library extension.
    • Skills needed: C/C++. Project difficulty: easy
      Mentor Sergei Golubchik
  • MDEV-19160 JSON_DETAILED output unnecessarily verbose. (Part Time project - 175h)
    As is explained in the MDEV in detail, we want to improve JSON_DETAILED function to better suit our development and debugging purposes. This project will aim to clean up the function's implementation as well as introduce test cases as well as potential "nice-to-have" features to make developer's lives easier.
    • Skills needed: C/C++, understand JSON, OOP. Project difficulty: easy
      Mentor: Vicențiu Ciorbaru / Sergei Petrunia
  • MDEV-18827 Create utility to parse frm files and print their DDL (Full-time project - potential part-time (175 - 350h, depending on scope))
    FRM files are what MariaDB uses to store metadata about tables. These files can be used to generate DDL statements (CREATE TABLE ...). We are lacking a utility to parse these files which could in turn make DBAs lives easier. The task of this project is to have this utility implemented, making use of MariaDB's FRM parsing logic. You may have to carry out some refactoring to extract the parsing code into a reusable library, once for MariaDB Server, once for the FRM parsing tool.
    • Skills needed: C/C++, understanding libraries and APIs. Project difficulty: medium to hard, depending on time allocated
      Mentor Vicențiu Ciorbaru / Sergei Golubchik / Monty Widenius
  • MDEV-17467 Add linear regression functions (Full-time project - 350h)
    This project consists of implementing dedicated regression functions within MariaDB. The specification of each function will be decided during the project, based on what other competing databases are offering. We will choose an implementation that best matches user expectations. It is the student's job to perform research into at least one other database and come up with exact semantics for each one of the functions in the MDEV.
    • Skills needed: C/C++, understanding of regression functions and mathematics, APIs, OOP. Project difficulty: medium
      Mentor Vicențiu Ciorbaru

ColumnStore

  • MCOL-4995 Research/implement basic vectorized filtering for ARM platforms (Full-time project - 350h)
    AS of 6.2.2 Columnstore(MCS) supports vectorization on x86_64 platforms only. The goal of the project is to implement a vectorized low-level filtering for ARM platforms using 128bit ARM NEON extention(SVE is optional). Low-level filtering in the context is the simple predicate WHERE filters, e.g. WHERE c1 = 5 AND c2 in (10, 25). Please see the corresponding Jira issue for details.
    Mentor Roman Nozdrin
  • MCOL-4994 Build/run Columnstore on MacOS (Part-time project - 175h)
    As of Columnstore(MCS) 6.2.2 there is no way to compile/use the MCS engine on MacOS. The goal of this project is to be able to boostrap MariaDB + basic(maybe rudimentary) MCS on MacOS. There are number of known issues that prevents MCS compilation on MacOS: a number of offending preprocessor macroses/definitions specific for Linux x86_64 combination; MacOS doesn't provide syslog used by MCS as the only log messages sink. Please see the corresponding Jira issue for details.
    Mentor Roman Nozdrin
  • MCOL-785 Implement DISTRIBUTED JSON functions (Full-time project - 350h)
    As of 6.2.2 Columnstore there are two query execution modes: relatively slow but compatible Table mode and fast Select Handler mode. Table mode execution supports all JSON_* functions and SH mode doesn't support any. We want to add support for JSON_* functions family in SH query execution mode. Please see the corresponding Jira issue for details.
    Mentor Roman Nozdrin

Buildbot (CI/CD)

  • MDBF-320 Better Grid view for buildbot.mariadb.org (Python / Javascript / Web Dev ( Full-time project 350h)
    Our CI/CD infrastructure uses a recent version of Buildbot. The GRID view plugin that comes with Buildbot is not adequate for our needs. In this project, you will discuss with your mentor as well as other MariaDB developers on how to best improve the User Experience of Buildbot's grid view for what MariaDB Developers needs to accomplish.
    • Skills needed: Understanding of web-dev technologies like Angular, React, and Javascript related libraries. Python may also be required.
      Mentor Vlad Bogolin / Andreia Hendea

Suggest a Task

Do you have an idea of your own, not listed above? 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.