← Back to team overview

maria-developers team mailing list archive

Re: [Merge] lp:~maria-captains/maria/maria-xtradb into lp:maria


Vadim Tkachenko <vadim@xxxxxxxxxxx> writes:

> You ask good question re: INNODB_RW_LOCKS_USE_ATOMICS, this is actually
> one of main points of XtraDB to improve scalability on 8CPU+ boxes, so
> we just rely on it.

Yes, understood.

> XtraDB can be built without INNODB_RW_LOCKS_USE_ATOMICS, but effect may
> be opposite - we can see slowdown instead of improvement.


I think there are two issues here.

One is that we are replacing InnoDB with XtraDB in MariaDB. Thus we need
XtraDB to build and work on all the platforms that MariaDB should work on.

The other is to get good performance/scalability of XtraDB. This is very
important on the major platforms, but maybe not on all platforms.

So it seems that right now XtraDB relies on GCC intrinsics for the performance
improvements. I personally think this is fine. We can build with GCC on the
main performance platforms I think. The main non-GCC platform currently is
Windows, so we need XtraDB to build and work with non-GCC, but I think for now
8CPU+ scalability on Windows is not the most important priority.

Later we can then add Windows method for scalability, or maybe switch to also
build with GCC on Windows.

> I am not sure what to do with this, I also need to look into
> InnoDB-plugin 1.0.3, what solution they have and may be use new InnoDB
> rw_locks instead of ours. Anyway - this is something to discuss.


I will also look closer as time permits, checking the ./configure tests
(already discussed this a bit with Sergei Golubchik) and the build failures
when INNODB_RW_LOCKS_USE_ATOMICS is not defined.

> About tests you should execute
> setup.sh
> from storage/innobase before running test, as it patches main test suite
> by InnoDB specific tests.
> I did not want to put them into main test suite to keep all changes only
> to storage/innobase repository.

Ok. I understand why you keep this separate for XtraDB, thanks for the info.

I will try this. It seems to me that once we replace InnoDB with XtraDB in the
MariaDB tree, we can commit the changes done by setup.sh, do you agree?

> In our tests only two tests do not pass after patches - it is
> main.variables_big and main.read_many_rows_innodb, but they also do not
> pass in native InnoDB-plugin.

Ok, I can hopefully take a look later, maybe we need to disable them until
Oracle/Innobase team fixes them.

 - Kristian.

Follow ups