Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Officially support MariaDB as Mysql replacement + Enable Continuous Integration testing on MariaDB #4315

Closed
mattab opened this issue Nov 19, 2013 · 14 comments
Labels
c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. not-in-changelog For issues or pull requests that should not be included in our release changelog on matomo.org. Task Indicates an issue is neither a feature nor a bug and it's purely a "technical" change.

Comments

@mattab
Copy link
Member

mattab commented Nov 19, 2013

Mariadb is a fork of Mysql created when it was bought by Oracle. Oracle != !evil. MariaDB is an enhanced, drop-in replacement for MySQL.

Several users have reported in the forums and by email that Piwik runs under MariaDB. It would be great to setup Travis CI so it runs our Integration tests on MariaDB on latest PHP version.

Follow up of #4233

Task:

  • investigate if mariadb works on travis
  • enable build
  • make build green!
  • Maybe we should run both PDO and Mysqli on Mariadb

Other actions:

  • Update faq to mention mariadb compat.
  • update requirements page
  • blog official support, mention vision for other dbs

References

@halfdan
Copy link
Member

halfdan commented Jan 22, 2014

MariaDB is currently being discussed at Travis: travis-ci/travis-ci#1081

Also: I vote against blowing up our build matrix to more builds. We're already using a lot of Travis' resources and should be more conservative. At some point we should drop MySQLi in favor of PDO.

@mattab
Copy link
Member Author

mattab commented Feb 2, 2014

Great news, Travis CI supports MariaDB via apt!

See this comment: travis-ci/travis-ci#1081 (comment)

I suggest we setup Integration+Core+Plugins builds on MariaDB, using PDO only (let's not run mysqli as to save resources - but maybe we could check quickly whether it still works).

@mattab mattab added this to the 2.x - The Great Piwik 2.x Backlog milestone Jul 8, 2014
@mattab mattab removed Major labels Aug 3, 2014
@mattab mattab added the c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. label Oct 10, 2014
@mattab mattab added c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. and removed c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. labels Apr 10, 2015
@mattab
Copy link
Member Author

mattab commented Jul 22, 2015

Travis CI added support for MariaDB so we could enable it travis-ci/travis-ci#1081

@quba
Copy link
Contributor

quba commented Aug 31, 2015

@mattab: maybe we should consider enabling this build? We are using MariaDB + TokuDB on prod environments so would be nice to avoid regressions here. Cheers!

@gaumondp
Copy link

Sorry to hijack the thread a bit but @quba , that would be very interesting to have something about your experience with TokuDB and Piwik !

@theyosh
Copy link
Contributor

theyosh commented Nov 28, 2015

Hi,

Percona has bought TokuDB, and now you can install it through packages:
https://www.percona.com/doc/percona-server/5.6/installation/apt_repo.html

We use this at out work now, and it just works perfect.

Some settings that we have set for TokuDB are based on: http://code.openark.org/blog/mysql/tokudb-configuration-variables-of-interest

tokudb_commit_sync = 0
tokudb_fsync_log_period = 1000
tokudb_load_save_space = 1
default-storage-engine=TokuDB

Where tokudb_commit_sync = 0 makes it really fast, but also a bit unstable. If the mysql server crashes, you could loose some data that was still in memory.

@davidmarcus
Copy link

davidmarcus commented Dec 1, 2020

@mattab Seems like this issue can be marked completed?

@tsteur
Copy link
Member

tsteur commented Dec 2, 2020

It's not completed because of continuous testing but I don't really think it's needed.

@sgiehl
Copy link
Member

sgiehl commented Dec 2, 2020

@tsteur that would actually be quite simply to do. We only need to add the maria-db addon to the builds we want to run it with.
Should we run the all tests or the ui tests on maria db maybe?

@tsteur
Copy link
Member

tsteur commented Dec 2, 2020

@sgiehl personally I would not add yet another build job. They should be compatible with MySQL anyway and I reckon should there ever be an issue then we can still investigate that issue and fix it if needed etc. For sure lets not run UI tests on it as it's slow etc. When this becomes a priority we'd probably do integration and system tests.

@theyosh
Copy link
Contributor

theyosh commented Dec 2, 2020

For what it is worth: I would say that MariaDB is just a drop-in replacement, and should behave like normal MySQL. Therefore adding more build jobs it not that useful.

The same thing I did when I started using TokuDB in the past. They (TokuDB developers) stated that it was a drop-in replacement, which should be 100% compatible with MySQL. So I just start using TokuDB, and up till now, it still works.

So I agree with @tsteur .

@tsteur
Copy link
Member

tsteur commented Dec 2, 2020

Great to hear re TokuDB @theyosh by any chance do you have any comparison of performance or in general compared to standard MySQL or MariaDB? And if it's just a "very happy and things run smooth and fast " comment :)

@theyosh
Copy link
Contributor

theyosh commented Dec 2, 2020

I do not have any comparison. I had posted in the past in the forum about performances. But that was way back. I just did not switched back. As TokuDB is really a drop-in replacement, I use it for all my MySQL stuff. :) They stated about 4 times less space on disk (on the fly compression) and 20 times faster. I can confirm that the storage usage is about 3.5 times lower. And the speed is really fast. I can't say 20 times faster, but certain about 5 times. So cleaning a week becomes about 1 day.
But I am not sure how the state is right now, as Percona has purchased it. And I have not tried to upgrade my MySQL server to version 8 which is the latest. I am still on the 5.7 version.

And as far as I know, MySQL and MariaDB are not that different in speed. In the beginning MariaDB was a bit faster at certain points. But not really something that I would say it is superior.

But back on topic. I would stick to the policy, we test 'standaard' MySQL. And other party that claims to be a drop-in replacement, could be used at own risk. No active support.

@tsteur
Copy link
Member

tsteur commented Dec 2, 2020

Thanks for the feedback @theyosh very appreciated.

And yes agreed . I'll close the issue for now and should it ever become an issue we can always reopen.

@tsteur tsteur closed this as completed Dec 2, 2020
@tsteur tsteur added the not-in-changelog For issues or pull requests that should not be included in our release changelog on matomo.org. label Dec 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. not-in-changelog For issues or pull requests that should not be included in our release changelog on matomo.org. Task Indicates an issue is neither a feature nor a bug and it's purely a "technical" change.
Projects
None yet
Development

No branches or pull requests

8 participants