[MDEV-4135] Merge XtraDB into 10.0 Created: 2013-02-04  Updated: 2014-01-05  Resolved: 2013-12-23

Status: Closed
Project: MariaDB Server
Component/s: None
Fix Version/s: 10.0.7

Type: Task Priority: Major
Reporter: Kristian Nielsen Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None


 Description   

The storage/xtradb in the MariaDB 10.0 tree is currently mostly a copy
of the 5.5 code.

Before we can release 10.0, we need to merge XtraDB with the new InnoDB from
MySQL 5.6. XtraDB is the default InnoDB in MariaDB, and we need both the
user-visible features from XtraDB to avoid regressions in upgrades to 10.0, as
well as the general 5.6 improvements.

We do not need to merge all changes in XtraDB. Just the ones that could
reasonably be expected by users to remain. Some features of 5.5 XtraDB are
reimplemented in 5.6 InnoDB, so we can drop the XtraDB ones or possibly
implement config aliases etc. to remain compatible.

Probably most/all of the merge can be taken from Percona Server 5.6.

(I am logging this task mostly to ensure that we do not forget and end up
releasing MariaDB 10.0 beta/ga without XtraDB functionality, so user's setups
break in the upgrade due to unknown configuration options and such)



 Comments   
Comment by Elena Stepanova [ 2013-10-07 ]

Percona server is now GA (5.6.13), so it's time for the merge.

Comment by Jan Lindström (Inactive) [ 2013-11-05 ]

We should also merge MySQL 5.6.13

Comment by Patryk Pomykalski [ 2013-11-05 ]

not 5.6.14?

Comment by Sergei Golubchik [ 2013-11-05 ]

We'll merge the latest released 5.6, whatever it'll be at the time of the merge.
But there will be a separate MDEV issue for that, this one — MDEV-4135 — is to track progress of merging XtraDB into 10.0

Comment by Sergei Golubchik [ 2013-12-23 ]

merged.
fixed to compile on windows.
disabled on windows (hangs).
disabled on centos5 (doesn't compile — requires gcc atomic ops).
enabled elsewhere as optional dynamic plugin

Comment by pgnd [ 2014-01-05 ]

I can see the storage/innodb & storage/xtradb dirs in MariaDB 10 head's sources.

Can someone please point to the/any docs for building/using Percona's XtraDB exclusively, instead of Oracle's InnoDB?

Comment by Sergei Golubchik [ 2014-01-05 ]

Remove "MODULE_ONLY" from storage/xtradb/CMakeLists.txt.

After that you can build with xtradb and without innodb using (untested)
cmake -DWITH_XTRADB=1 -DWITHOUT_INNODB=1

Comment by pgnd [ 2014-01-05 ]

cmake -DWITH_XTRADB=1 -DWITHOUT_INNODB=1 ...
...
CMake Warning:
Manually-specified variables were not used by the project:

WITHOUT_INNODB

Should that instead be

-DWITH_INNOBASE_STORAGE_ENGINE=0

or
-DWITH_INNOBASE=0

?

Comment by pgnd [ 2014-01-05 ]

fwiw,

cd bld
cmake -LAH .. | grep -i INNO | grep WITH
WITH_INNOBASE_STORAGE_ENGINE:BOOL=ON

Comment by Sergei Golubchik [ 2014-01-05 ]

Sorry, it should be -DWITHOUT_INNOBASE=1.

Generally it's -DWITH_xxx=1 to force static linking for a plugin or -DWITHOUT_xxx=1 to exclude a plugin completely.

Comment by pgnd [ 2014-01-05 ]

fyi,

cmake -DWITH_XTRADB=1 -DWITHOUT_INNOBASE=1 ...
make
make install
systemctl restart mariadb
mysqld -V && mysql -e "SHOW ENGINES;" | grep -i Inno
mysqld Ver 10.0.8-MariaDB-log for Linux on x86_64 (Source distribution)
InnoDB DEFAULT Percona-XtraDB, Supports transactions, row-level locking, and foreign keys YES YES YES

so that appears to work as intended, thanks!

comment: it'll be useful (eventually) to have

cd bld
cmake -LAH ..

correctly report all available cmake options that are to be used. +1 on the 'self-documentation request'.

> Generally it's -DWITH_xxx=1 to force static linking for a plugin or -DWITHOUT_xxx=1 to exclude a plugin completely.

I missed that convention completely. Somewhere. Thanks!

Comment by Sergei Golubchik [ 2014-01-05 ]

about 'self-documentation request' and 'missed that convention': I'm fixed it recently (but not pushed yet), introducing a new set of options for plugins that are both shown in "cmake -LH" (and all cmake GUIs too) and also have a self-documented convention, which would be difficult to miss.

Generated at Thu Feb 08 06:54:02 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.