How to Remove Document Management Hurdles with X-Docs?
MariaDB 5.5 and what comes next - Percona Live NYC 2012
1. MariaDB 5.5 and what
comes next
Colin Charles, Monty Program Ab
colin@montyprogram.com | colin@mariadb.org
http:/ /montyprogram.com/ | http:/ /mariadb.org/
http:/ /bytebot.net/blog/ | @bytebot on Twitter
Percona Live NYC, New York, USA
2 October 2012
2. whoami
MariaDB guy at Monty Program Ab
Formerly MySQL AB/Sun Microsystems
Past lives included Fedora Project (FESCO),
OpenOffice.org
3. Aims
32 months, four major releases
(5.1,5.2,5.3,5.5) & more (Galera Cluster, 10.0)
Discuss the broader MySQL ecosystem
The future of MariaDB
4. MariaDB is... (currently)
Community developed
Feature enhanced
branch of MySQL with more
Backwards compatible
not a fork
feature complete
5. Ownership
MySQL (database) owned by MySQL AB
(company) -> Sun -> Oracle
Monty Program is just a (major) sponsor of
MariaDB
maria-captains: 50% MP, 50% community
including Sphinxsearch, Twitter, SkySQL,
Taobao, Facebook, Percona, Codership, & more
6. Compatibility with
MySQL
NDB cluster included, XtraDB enabled by
but not enabled by default now. InnoDB
default included too & may
change to default
Client libraries, client
server protocol, SQL MariaDB Galera Cluster
dialect, master-slave is a separate download
replication all same
http://kb.askmonty.org/
Data files supported as v/mariadb-versus-
long as same versions mysql-compatibility
7. MariaDB 5.5
GA April 2012
https://kb.askmonty.org/en/what-is-
mariadb-55/
Current release: MariaDB 5.5.27
By far the most popular release of MariaDB
downloaded, in use, today
8. MariaDB 5.5: an
opensource threadpool
Modified from 5.1 No minimization of
(libevent based), great concurrent transactions
for CPU bound loads with dynamic pool size
and short running
queries
Windows (threadpool),
Linux (epoll), Solaris
(event ports), FreeBSD/
OSX (kevents)
9. MariaDB 5.5: Better for
DBAs
non-blocking client library SELECT now has LIMIT
ROWS EXAMINED to
start operation, do consume less resources
work in thread,
operation processed, SELECT * from t1,
result travels back t2 LIMIT 10 ROWS
EXAMINED 1000;
use cases: multiple
queries against single
server (utilize more
CPUs); queries against
multiple servers
(SHOW STATUS on
many machines)
11. MariaDB 5.3
Biggest change in the optimizer since it was
written
Replication improvements
Released February 2012
Based on the MySQL 5.1 codebase
12. Better replication
Original statements logged with row based
replication (RBR) events
Checksum for binlog events
RBR works for tables with no primary key
Consistent snapshot between storage engines
13. Group commit in the
binary log
sync_binlog=1, http://kb.askmonty.org/en/group-
innodb_flush_log_at_trx_commit=1 commit-for-the-binary-log
https://www.facebook.com/note.php?
note_id=10150261692455933
14. MariaDB 5.3: GIS
support!
MySQL has OpenGIS SFS (Simple feature
access, SQL access method)
Now, SQL with full geometry types
ST_ prefix
http://kb.askmonty.org/en/gis-features-
in-533
15. Optimizer enhancements
Join additions
block nested loop joins for outer-joins, block hash
joins, Batched Key Access (BKA)
Optimization for derived tables & views
mergeable derived tables processed like VIEWs +
optimizer creates indexes over materialized derived
tables
Disk access optimization
ICP, MRR
16. Subquery optimizations
Semi-join Goodbye rewriting as
optimization, JOINs or separate
materialization for queries
non-correlated IN
queries, subquery
cache
DBT-3, 60M rows, 29GB XtraDB
17. Welcome MySQL 5.6
Instant EXPLAIN
https://
kb.askmonty.org/
en/optimizer-
feature-
comparison-
matrix/
Optimizer trace
in 5.6?
18. Progress reporting
For ALTER TABLE or LOAD DATA INFILE
MariaDB [mail]> alter table mail engine = maria;
Stage: 1 of 2 'copy to tmp table' 17.55% of stage done
MariaDB [mail]> select id, user, db, command, state,
-> time_ms, progress from information_schema.processlist;
+---------+-------------------+-----------+----------+
| command | state | time_ms | progress |
+---------+-------------------+-----------+----------+
| Query | copy to tmp table | 23407.131 | 17.551 |
+---------+-------------------+-----------+----------+
1 row in set (0.47 sec)
19. NoSQL access methods
Comes with HandlerSocket
direct access to XtraDB/InnoDB for CRUD
operations
Dynamic columns
create columns with dynamic content
basically a blob with handling functions
20. MariaDB 5.2
Released November 2011
Pluggable authentication w/PAM plugin
User statistics: CLIENT_STATISTICS,
USER_STATISTICS, INDEX_STATISTICS,
TABLE_STATISTICS (userstats=1)
Virtual columns - PERSISTENT or VIRTUAL
SphinxSE storage engine started shipping
21. Still using MyISAM?
Mitigates thread contention for key cache
lock, with notable performance improvements
Key caches divided into different segments,
allowing for better key cache concurrency
1-64 segments
23. How do we support all
this?
Support Latest
Version Released MySQL
till release
5.1.42 Feb 2010 Feb 2015 5.1.62 5.1.63
5.2.3 Nov 2010 Nov 2015 5.2.12 5.1.63
5.3.5 Feb 2012 Feb 2017 5.3.8 5.1.65
5.5.23 Apr 2012 Apr 2017 5.5.27 5.5.27
24. Oh, and we’re fast
Oracle loves MySQL performance on
Microsoft Windows. So do we
OLTP read-only OLTP write-only
25. How open is MariaDB?
Mailing lists: Launchpad http://
launchpad.net/
maria- maria/
developers@lists.lau
nchpad.net Bugs database/feature
worklog: Jira
maria-
discuss@lists.launchp http://
ad.net mariadb.atlassian.ne
t/
Code hosting:
Launchpad #maria on freenode
27. Deployments!
happy users: pap.fr, wabtec, Paybox Services,
“We made the switch on
OLX, Jelastic, Web of Trust, SaltOS, ERP5, etc. Saturday -- and we’re seeing
“MariaDB had these same bugs that we ran into benefits already -- our daily
with MySQL. However the big difference was optimization time is down from
that when we reported these bugs, they were 24 minutes to just 4 minutes” --
quickly resolved within 48 hours!” -- Dreas van Ali Watters, CEO, travelblog.org
Donselaar, Chief Technology Officer, SpamExperts
B.V. after migrating over 300 servers from
MySQL 5.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.
28. Getting MariaDB
http://mariadb.org/ has repositories
(APT,YUM) & regular downloads
OpenSUSE build service
Gentoo, FreeBSD, Homebrew, Mageia, many
distributions
http://kb.askmonty.org/v/distributions-which-
include-mariadb
30. Other branches
MySQL Percona MariaDB MySQL Percona MariaDB
5.5.20 7.7M 61M 5.5.20 222299 1587843
5.5.22 16M 60M 5.5.22 438567 1540932
31. What are we missing
from Percona Server?
percona_innodb_buffer_pool_shm - requires
big shmax not default on many systems
percona_log_slow_query_log-
log_slow_verbosity - InnoDB filtering
information not fully in MariaDB
Disabled test suite is awesome resource :)
33. Faster even?
read only? InnoDB/XtraDB is fine
InnoDB has higher throughput, but stalls & checkpoints w/
high write load
34. Track record
We found the latest MySQL security bug and MariaDB
was first to be patched (sql/password.c & memcmp())
We don’t like regressions
http://www.skysql.com/blogs/hartmut/nasty-
innodb-regression-mysql-5525
We care about backward compatibility & introduce
features carefully
XtraDB innodb_adaptive_checkpoint=none|reflex|
estimate|keep_average (no more reflex...)
35. User stats plugin
Disabled by default, consider enabling it to
show use! http://mariadb.org/feedback_plugin/
data from over 85
countries!
36. We love the community
Tokutek’s TokuDB ships with MariaDB too
groonga is to be merged
We’re looking at spider next
Multiple software packages talk about us (as
an alternative to MySQL): Drupal, MediaWiki,
Plone, phpMyAdmin, WordPress, etc.
37. Future
MySQL 5.6 just RC, we have most features in 5.5
MariaDB 10.0
new InnoDB inside MariaDB (done)
Global transaction ID support
Multi-source replication (done)
Enhanced semisync replication
Persistent InnoDB statistics (done)
Cassandra Storage Engine (done), HBase Storage Engine