Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing MariaDB 10.0

Introducing MariaDB 10.0

Talk given at SouthEast Linux Fest, June 7-9, 2013.

2a3d8c791b25e02381196708f45fa520?s=128

Daniel Bartholomew

June 08, 2013
Tweet

Transcript

  1. Introducing MariaDB 10.0

  2. Who Am I? • Daniel Bartholomew – Sr. Technical Writer

    / Sys Admin for the MariaDB project – dbart@mariadb.org – dbart on Freenode (#maria) – Twitter: @daniel_bart – Google+: http://gplus.to/dbart – Facebook: Not if I can help it.
  3. What is MariaDB? • Started as branch of MySQL •

    The project is ~50 months old • Major Releases: 5.1, 5.2, 5.3, 5.5, Galera Cluster, MariaDB 10.0 (still alpha) • Community Developed, Feature Enhanced, Backward Compatible • Want more information? – Attend Max Mether's talk – MariaDB: MySQL With More Features – tomorrow at 09:00 in this room
  4. Why MariaDB 10.0? • Blogs about why we are calling

    it MariaDB 10.0: – http://blog.mariadb.org/what-comes-in-between-m ariadb-now-and-mysql-5-6/ – http://blog.mariadb.org/explanation-on-mariadb-10 -0/ – http://blog.mariadb.org/mariadb-10-0-and-mysql-5- 6/
  5. Why MariaDB 10.0? • MariaDB & MySQL version numbers in

    5.1 & 5.5 are locked, which causes problems. • For Example: – MariaDB & MySQL 5.1.44 buffer overflow flaw – Very serious bug so we fixed it immediately (in hours in the source, package release within a couple days) – MySQL also at 5.1.44, we couldn't use 5.1.45, so we numbered it as MariaDB 5.1.44b – MySQL fixed it in 5.1.45
  6. Why MariaDB 10.0? • 5.2 & 5.3 are easier to

    manage because we don't have to wait for MySQL or use non- standard version numbers • Huge changes in MariaDB 5.3 • The 5.3 to 5.5 merge took almost a year • In MariaDB 5.5 there are over 1.5 million lines of extra code, ~61MB diff • MariaDB is not a patch set against MySQL • Feature-for-feature, there are many differences
  7. Why MariaDB 10.0? • MariaDB 5.5 has many features not

    in MySQL 5.5 but which are in MySQL 5.6 • MySQL 5.6 refactored with huge losses in commit history • Not all new 5.6 code is up to MariaDB standards • Missing test cases • Non-public bug reports
  8. Why MariaDB 10.0? • Flexibility • Quality • Innovation •

    Reality
  9. MariaDB 10.0 Releases Date Version Status 12 Nov 2012 10.0.0

    Alpha 6 Feb 2013 10.0.1 Alpha 24 Apr 2013 10.0.2 Alpha ??? 10.0.3 Alpha (probably)
  10. MariaDB 10.0 in a Nutshell • Built on MariaDB 5.5

    – You really should see Max's talk tomorrow. • Includes: – Backported features (from MySQL 5.6) – Reimplemented features (from MySQL 5.6) – New features
  11. Backported Features • InnoDB • PERFORMANCE_SCHEMA • Online ALTER TABLE

    • Optimizer – ORDER BY … LIMIT optimization
  12. Reimplemented Features • Error messages (w/ system error string) •

    CURRENT_TIMESTAMP as DEFAULT for DATETIME columns • Global Transaction ID – kb.askmonty.org/en/global-transaction-id • Parallel replication – mariadb.atlassian.net/browse/MDEV-4506
  13. New Features • Multi-source Replication – Work from Taobao –

    Many users partition data across many masters… now you can replicate many masters to a single slave – Great for analytical queries, complete backups, etc… – kb.askmonty.org/en/multi-source-replication
  14. New Features • EXISTS-TO-IN optimization – kb.askmonty.org/en/exists-to-in-optimization • SHOW EXPLAIN

    for <thread_id> gets the query plan for a running statement – kb.askmonty.org/en/show-explain
  15. New Features • Faster ALTER TABLE with unique keys for

    Aria and MyISAM • Per-thread memory usage (from Taobao) – INFORMATION_SCHEMA.PROCESSLIST now has MEMORY_USAGE & EXAMINE_ROWS – SHOW STATUS has memory usage information now – mariadb.atlassian.net/browse/MDEV-4011
  16. New Features • Engine Independent persistent statistics – MySQL 5.6

    has persistent statistics, but only for InnoDB – MariaDB version is storage engine independent – Statistics are not limited by the storage engine API, and are used by the query optimizer to choose the best execution plan for each statement – Statistics are collected for non-indexed columns (unlike MySQL 5.6 InnoDB version) – mariadb.atlassian.net/browse/MDEV-4145
  17. New Features • Support for atomic writes on FusionIO DirectFS

    – kb.askmonty.org/en/fusion-io-introduction – kb.askmonty.org/en/fusionio-directfs-atomic- write-support • Better table discovery, so FederatedX has assisted discovery, Sequence engine (creates ascending / descending sequences, useful in joins)
  18. New Features • MariaDB as a “data platform” • Cassandra

    storage engine – Apache Cassandra cluster seen as a storage engine to MariaDB – Read and Write to Cassandra using SQL (SELECT, INSERT, UPDATE, DELETE) – kb.askmonty.org/en/cassandra
  19. Cassandra Storage Engine

  20. Cassandra Storage Engine & etc... system logs audit logs web

    logs
  21. New Features • CONNECT storage engine – Can read csv,

    dbf, ini, XML, ODBC, and more – Combine (join) data between multiple data sources (for example, Cassandra & MariaDB & Oracle) – kb.askmonty.org/en/connect • LevelDB storage engine – kb.askmonty.org/en/leveldb
  22. MariaDB 10.0 Upcoming Features • SPIDER storage engine – spiderformysql.com

    • TokuDB storage engine – kb.askmonty.org/en/tokudb • Column level encryption via MyDiamo from Penta Security • More Fusion-IO optimizations • ??? – You can shape the roadmap
  23. MariaDB 10.0 Roadmap • MariaDB is already a superset of

    features in MySQL • MySQL 5.6 merge will be completed in two steps – 10.0.x – 10.1.x • Plan is to have all important features of MySQL 5.6 with the first 10.1.x stable release – For all practical purposes MariaDB 10.1.x will be a drop-in replacement to MySQL 5.6
  24. FAQ – Replication • Can I replicate from MySQL 5.6

    to MariaDB 10.x? – Yes • Can I replicate from MariaDB 10.x to MariaDB 5.5? – Yes • Can I replicate from MariaDB 10.x to MySQL 5.5/5.6? – No
  25. FAQ – Tools • SELECT VERSION() returns 10.0.2-MariaDB • Version

    string in handshake packet will be 5.5.30-mysql-10.0.2-MariaDB • Tools should start recognizing MariaDB for additional feature-set (mytop, HeidiSQL, etc…)
  26. Resources • MariaDB 10.0 Information: – https://kb.askmonty.org/en/what-is-mariadb-100/ • Blogs: –

    http://blog.mariadb.org/ what-comes-in-between-mariadb-now- and-mysql-5-6 explanation-on-mariadb-10-0 mariadb-10-0-and-mysql-5-6
  27. Resources • http://mariadb.org • Bugs: http://mariadb.org/jira • Mailing lists: –

    maria-discuss@lists.launchpad.net – maria-developers@lists.launchpad.net • Twitter: http://twitter.com/mariadb • Google+: http://google.com/+mariadb • Facebook: http://fb.com/MariaDB.dbms • IRC: #maria on Freenode • Knowledgebase: http://kb.askmonty.org • Blog: http://blog.mariadb.org
  28. Benchmarks “Lies, damned lies, and statistics.” – Mark Twain

  29. Segmented MyISAM Keycache • Solves major read bottlenecks for MyISAM

    • MyISAM usage with many readers
  30. Batched Key Access speedups select max(1_extendedprice) from orders, lineitem where

    o_orderdate between $DATE1 and $DATE2 and l_orderkey=o_orderkey;
  31. Group commit in the binary log Source: Mark Callaghan, https://www.facebook.com/note.php?note_id=10150261692455933

  32. Group commit in 10.0 • Even faster • Slow fsync

    (removing checkpoint per commit saving 1-in-3 fsyncs) • Fast fsync (reduced stall on LOCK_log gives speedup)
  33. 10.0 Group Commit vs MySQL 5.6 • MySQL 5.6 removes

    checkpoint per commit • More complex thread scheduling, less grouping of commits • Does not remove stall on LOCK_log, less grouping of commits
  34. Questions?