Your SlideShare is downloading. ×
0
Why MariaDB?       Colin Charles, Monty Program Ab          colin@montyprogram.comhttp://montyprogram.com / http://mariadb...
Aims• Give you an update of what we’ve done  with MariaDB• Discuss the broader MySQL ecosystem
What is it?• A branch of MySQL with more features?• A branch of MySQL with better features?• A fork?
MariaDB is...• Community Developed• Feature Enhanced• Backward Compatible
Who’s behind it?• MySQL (database) owned by MySQL AB  (company)• Monty Program is just a sponsor of  MariaDB• maria-captai...
When did this begin?• Sun buys MySQL AB in January 2008• Oracle proposes acquisition of Sun  Microsystems in April 2009• W...
Why MariaDB?• MySQL - an open source product or  project?• MariaDB is an open source project
Aims of MariaDB• 100% compatible, drop-in replacement to  MySQL• Stable (bug-free) releases• GPLv2
Compatibility with         MySQL•   There is no NDB cluster        •   Tools are similar (some    storage engine          ...
What’s in MariaDB 5.1•   Released February 2010    •   Croatian collations•   Create external           •   Numerous bug fi...
What’s in MariaDB 5.1•   XtraDB                   •   http://    (ENGINE=InnoDB)              www.percona.com/docs/       ...
What’s in MariaDB 5.1•   PrimeBase PBXT                 •   Rollback transactions,                                       r...
What’s in MariaDB 5.1•   Extended statistics for slow   •   PROCESSLIST with    query log                          microse...
What’s in MariaDB 5.1•   Table elimination             •   Pool of threads (MySQL 6                                      b...
What’s in MariaDB 5.2•   Released November 2010                       •    Use socket_peercred - if already               ...
What’s in MariaDB 5.2•   Segmented MyISAM    keycache    •   mitigates thread        contention for key        cache lock,...
MariaDB 5.2: SphinxSE•   CREATE TABLE t1 (..)         •   monitor it - SHOW    ENGINE=SPHINX                    ENGINE SPH...
MariaDB 5.3: NoSQL•   HandlerSocket            •   Dynamic columns    •   direct access to         •   different set of   ...
MariaDB 5.3: Dynamic      Columns
MariaDB 5.3: group             commit•   Group commit for the binary log        •   https://www.facebook.com/note.php?    ...
MariaDB 5.3:                replication•   Checksums for binlog             •   mysqldump --single-    events (5.6 backpor...
MariaDB 5.3•   Progress reporting for     •   disk access: Index    ALTER TABLE/LOAD               Condition Pushdown    D...
MariaDB 5.3:        Subqueries finally!  •   DBT-3, 60M line item   •   optimizer_switch=‘semij      rows, 29GB XtraDB     ...
MariaDB 5.3: User       Feedback Plugin•   New “phone home”    plugin (works with    Percona server, MySQL)•   disabled by...
How open is MariaDB?•   Mailing lists: Launchpad        •   http://launchpad.net/                                        m...
Worklog•   Funding (bounties)•   Votes•   http://askmonty.org/    worklog/
Knowledgebase• http://kb.askmonty.org/
Deployments,   deployments, deployments    happy users: pap.fr, wabtec, Paybox Services, OLX,                         Jela...
Getting MariaDB•   http://mariadb.org/ is the site + downloads•   Get it via OpenSUSE build service•   Its in Gentoo, Free...
The future?• GIS• Merging takes time• Features (different implementations) make  it into upstream
We have a book
Support• Monty Program does NRE/engineering  work for MySQL/MariaDB (not L1/L2  support)• Support via capable service prov...
Q&A?       email: colin@montyprogram.comhttp://montyprogram.com/ | http://mariadb.org/twitter: @bytebot / url: http://byte...
Upcoming SlideShare
Loading in...5
×

Why MariaDB?

9,029

Published on

The myriad reasons why you want to use MariaDB over stock MySQL. Current up to MariaDB 5.3, and presented at Percona Live London 2011.

Published in: Technology

Transcript of "Why MariaDB?"

  1. 1. Why MariaDB? Colin Charles, Monty Program Ab colin@montyprogram.comhttp://montyprogram.com / http://mariadb.org/http://bytebot.net/blog / @bytebot on Twitter Percona Live London 2011 25 October 2011
  2. 2. Aims• Give you an update of what we’ve done with MariaDB• Discuss the broader MySQL ecosystem
  3. 3. What is it?• A branch of MySQL with more features?• A branch of MySQL with better features?• A fork?
  4. 4. MariaDB is...• Community Developed• Feature Enhanced• Backward Compatible
  5. 5. Who’s behind it?• MySQL (database) owned by MySQL AB (company)• Monty Program is just a sponsor of MariaDB• maria-captains: 64% Monty Program, 36% community (+16% MP 3Q/2011)
  6. 6. When did this begin?• Sun buys MySQL AB in January 2008• Oracle proposes acquisition of Sun Microsystems in April 2009• Widenius decides that beyond the engine (Febuary 2009), focus on MariaDB, a complete database solution
  7. 7. Why MariaDB?• MySQL - an open source product or project?• MariaDB is an open source project
  8. 8. Aims of MariaDB• 100% compatible, drop-in replacement to MySQL• Stable (bug-free) releases• GPLv2
  9. 9. Compatibility with MySQL• There is no NDB cluster • Tools are similar (some storage engine additional tools for Aria, PBXT)• Client libraries, client- server protocol, SQL • XtraDB enabled by default; dialect, replication master- InnoDB and InnoDB plugin slave all similar are included, but not enabled by default• Data files are supported as long as its similar between • http://kb.askmonty.org/v/ versions mariadb-versus-mysql- compatibility
  10. 10. What’s in MariaDB 5.1• Released February 2010 • Croatian collations• Create external • Numerous bug fixes buildsystem using Buildbot + VMs for test • Test cases and coverage +builds improvements• Release filled with • Removal of mutexes storage engines • Compiler warnings gone! • XtraDB, PBXT, FederatedX, (M)Aria
  11. 11. What’s in MariaDB 5.1• XtraDB • http:// (ENGINE=InnoDB) www.percona.com/docs/ wiki/percona- • enhanced InnoDB xtradb:start designed to better scale on modern hardware; backward compatible, scale better on many cores, use memory more efficiently
  12. 12. What’s in MariaDB 5.1• PrimeBase PBXT • Rollback transactions, recovery after restart • Transactional, foreign very fast (identifies garbage making undo keys, ACID, MVCC (read w/o locking) unnecessary) • Row-level locking during • Write once w/log-based (SELECT FOR) UPDATE storage; write data to DB, without first writing in transaction log • http://kb.askmonty.org/v/ about-pbxt
  13. 13. What’s in MariaDB 5.1• Extended statistics for slow • PROCESSLIST with query log microsecond precision • based on microslow • TIME_MS in from Percona http:// INFORMATION_SCH kb.askmonty.org/v/ EMA.PROCESSLIST slow-query-log- http://kb.askmonty.org/ extended-statistics v/time_ms-column-in- information_schemapr ocesslist
  14. 14. What’s in MariaDB 5.1• Table elimination • Pool of threads (MySQL 6 backport) • Query highly normalised data, it is • Use a limited set of sometimes possible to threads to handle all resolve a query queries vs one-thread- without accessing some per-connection. Win if tables the query refers most queries are short to e.g. http:// running, and there are kb.askmonty.org/v/ few table/row locks. what-is-table- http://kb.askmonty.org/ elimination v/pool-of-threads
  15. 15. What’s in MariaDB 5.2• Released November 2010 • Use socket_peercred - if already logged in via Unix credentials,• MariaDB 5.2.8 (MariaDB 5.1.55 - MariaDB will trust it changes up to MySQL 5.1.55) • http://kb.askmonty.org/v/• Pluggable authentication development-pluggable- authentication • authentication of users handled by plugins • User Statistics (userstatsv2) • mysql_native_password (20 byte) • Percona, Google, Weldon Whipple. and mysql_old_password (8 byte) Understand server activity better, included by default identify database loads http:// kb.askmonty.org/v/user-statistics • CREATE USER foo IDENTIFIED VIA mysql_native_password USING • Client, user, index, table statistics ‘pass’; == CREATE user foo IDENTIFIED BY PASSWORD ‘pass’;
  16. 16. What’s in MariaDB 5.2• Segmented MyISAM keycache • mitigates thread contention for key cache lock, with notable 250% performance improvements http:// kb.askmonty.org/ v/segmented-key- cache
  17. 17. MariaDB 5.2: SphinxSE• CREATE TABLE t1 (..) • monitor it - SHOW ENGINE=SPHINX ENGINE SPHINX CONNECTION=”sphin STATUS; x://localhost:9312/test”; • can JOIN a SphinxSE• SELECT * from t1 search table and tables WHERE query=‘test using other engines as it;mode=any’; well • matching modes, • https://kb.askmonty.org/ limits, filters, ranges v/about-sphinxse supported
  18. 18. MariaDB 5.3: NoSQL• HandlerSocket • Dynamic columns • direct access to • different set of InnoDB/XtraDB “virtual columns” for each row in your • no SQL, simple table CRUD operations on tables • store different attributes for each item (see: e- commerce shops)
  19. 19. MariaDB 5.3: Dynamic Columns
  20. 20. MariaDB 5.3: group commit• Group commit for the binary log • https://www.facebook.com/note.php? note_id=10150261692455933 • sync_binlog=1, innodb_flush_log_at_trx_commit=1 • http://kb.askmonty.org/en/group-commit- for-the-binary-log
  21. 21. MariaDB 5.3: replication• Checksums for binlog • mysqldump --single- events (5.6 backport) transaction --master- data => non-blocking• START TRANSACTION backup! (new slave provisioning?) Works WITH CONSISTENT SNAPSHOT works w/ w/XtraDB+PBXT binlog • row-based replication • obtain binlog pos. w/o for tables w/no primary key blocking other queries
  22. 22. MariaDB 5.3• Progress reporting for • disk access: Index ALTER TABLE/LOAD Condition Pushdown DATA INFILE (ICP), Multi-Range Read (MRR) • join: Classic Hash • mytop included Join, Batched Key Access (ordered• Optimiser changes retrievals via MRR), and many many more • @@optimizer_switc optimizations h flags (default=off)
  23. 23. MariaDB 5.3: Subqueries finally! • DBT-3, 60M line item • optimizer_switch=‘semij rows, 29GB XtraDB oin=on’ / database materialization=onInstant EXPLAIN too!
  24. 24. MariaDB 5.3: User Feedback Plugin• New “phone home” plugin (works with Percona server, MySQL)• disabled by default -- please consider enabling it (feedback=on)• http://mariadb.org/ feedback_plugin/
  25. 25. How open is MariaDB?• Mailing lists: Launchpad • http://launchpad.net/ maria • maria- developers@lists.laun • Bugs database: chpad.net • https:// • maria- bugs.launchpad.net/ discuss@lists.launchp maria/ ad.net • #maria on FreeNode• Code hosting: IRC Launchpad
  26. 26. Worklog• Funding (bounties)• Votes• http://askmonty.org/ worklog/
  27. 27. Knowledgebase• http://kb.askmonty.org/
  28. 28. Deployments, deployments, deployments happy users: pap.fr, wabtec, Paybox Services, OLX, Jelastic, etc. “We made the switch on Saturday -- and we’re seeing benefits already -- our“MariaDB had these same bugs that we ran into daily optimization time is down fromwith MySQL. However the big difference was that 24 minutes to just 4 minutes” -- Aliwhen we reported these bugs, they were quickly Watters, CEO, travelblog.orgresolved within 48 hours!” -- Dreas van Donselaar,Chief Technology Officer, SpamExpertsB.V. after migrating over 300 servers from MySQL5.0 to MariaDB 5.1. “Migrating from MySQL 5.1 to MariaDB 5.2 was as simple as removing MySQL RPMs and installing the MariaDB packages, then running mysql_upgrade.” - Panayot Belchev, proprietor, Host Bulgaria on providing MariaDB to over 7,000 of their web hosting customers.
  29. 29. Getting MariaDB• http://mariadb.org/ is the site + downloads• Get it via OpenSUSE build service• Its in Gentoo, FreeBSD, Homebrew• http://kb.askmonty.org/v/distributions-which-include- mariadb
  30. 30. The future?• GIS• Merging takes time• Features (different implementations) make it into upstream
  31. 31. We have a book
  32. 32. Support• Monty Program does NRE/engineering work for MySQL/MariaDB (not L1/L2 support)• Support via capable service providers • http://mariadb.org/service-providers/ • Percona, FromDual, Open Query, SoftMethod GmbH, SkySQL
  33. 33. Q&A? email: colin@montyprogram.comhttp://montyprogram.com/ | http://mariadb.org/twitter: @bytebot / url: http://bytebot.net/blog/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×