← Back to team overview

maria-developers team mailing list archive

[GSoC] MDEV-4674 Port InnoDB memcached interface to MariaDB - Merging the code

 

Hi again,

there are some issues which I think needs to be resolved before merging the code.

1. Bundle libevent or not?

Memcached daemon is built with the help of libevent library. MySQL decided to bundle this library inside its sources, in 'libevent' top level directory. This allows to compile and run the plugin on machines without installed system-wide libevent library.

The bundled libevent is used by default during the compilation of plugin. Optionally, it can be specified in CMake variable to use system-wide libevent instead.

It needs to be decided whether MariaDB should bundle libevent as well inside its sources. Possible outcomes:

a) Leave bundled libevent as is, in the 'libevent' top level directory.
b) Move bundled libevent into the 'daemon_memcached' plugin directory, in order to not clutter the top level directory. c) Remove bundled libevent. After that, system libevent headers will become compile-time dependency and system libevent shared library runtime dependency of the plugin.

2. How to transfer InnoDB API callback array pointer to the plugin?

InnoDB Memcached interface engine needs to obtain the pointer to InnoDB API callback array in some way. MySQL originally implemented that in 'sql/sql_plugin.cc:plugin_initialize()' in the following way:

https://github.com/piotrjurkiewicz/mariadb-server/commit/4eb8fd9c211f39669417b46197a6a6f1e8bf7ec2

As you can see, this is not a clean solution.

Possible outcomes:

a) Leave the MySQL's solution as is.
b) Figure out a better way to transfer the pointer.

3. Where should I post the documentation?

4. How should I prepare the pull request? Should I rebase my branch on the top of current branch before that?

I looking forward for your suggestions and decisions.

Piotr


Follow ups