45
MariaDB 5.5 and what comes next Colin Charles, Monty Program Ab [email protected] | [email protected] http://montyprogram.com / | http://mariadb.org / http://bytebot.net/blog/ | @bytebot on Twitter DB Tech Showcase, K.K.Ashisuto, Tokyo, Japan 18 October 2012

A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB 5.5 and what comes next

Colin Charles, Monty Program [email protected] | [email protected]

http://montyprogram.com/ | http://mariadb.org/http://bytebot.net/blog/ | @bytebot on TwitterDB Tech Showcase, K.K.Ashisuto, Tokyo, Japan

18 October 2012

Page 2: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

whoami

MariaDB guy at Monty Program Ab

Formerly MySQL AB/Sun Microsystems

Past lives included Fedora Project (FESCO), OpenOffice.org

Page 3: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 4: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB is... (currently)

Community developed

Feature enhanced

a better MySQL

Fully compatible with MySQL

not a fork

feature complete

Page 5: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 6: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Aims of MariaDB

100% compatible, drop-in replacement to MySQL

i.e. no changes in connectors, app doesn’t care its MariaDB unless using new features, easy upgrade (uninstall mysql, install mariadb, magic!)

Stable (bug-free) releases with no regressions

GPLv2

Page 7: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Compatibility with MySQL

NDB cluster included, but not enabled by default

Client libraries, client server protocol, SQL dialect, master-slave replication all same

Data files supported as long as same versions

XtraDB enabled by default now. InnoDB included too & may change to default

MariaDB Galera Cluster is a separate download

http://kb.askmonty.org/v/mariadb-versus-mysql-compatibility

Page 8: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

XtraDB

ENGINE=InnoDB uses XtraDB by default

Less checkpointing (smoother), less flushing to disk, stable performance

Page 9: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 10: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB 5.5: an opensource threadpool

Modified from 5.1 (libevent based), great for CPU bound loads and short running queries

Windows (threadpool), Linux (epoll), Solaris (event ports), FreeBSD/OSX (kevents)

No minimization of concurrent transactions with dynamic pool size

Page 11: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB 5.5: Better for DBAs

non-blocking client library

start operation, do work in thread, operation processed, result travels back

use cases: multiple queries against single server (utilize more CPUs); queries against multiple servers (SHOW STATUS on many machines)

fast node.js driver available: mariasql

SELECT now has LIMIT ROWS EXAMINED to consume less resources

SELECT * from t1, t2 LIMIT 10 ROWS EXAMINED 1000;

Page 12: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

That’s it?From December 2010 to April 2012, 3 features

for a 16 month delay?!?

Page 13: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB 5.3

Biggest change in the optimizer since it was written - more complete than MySQL 5.6!!!

Replication improvements

Released February 2012

Based on the MySQL 5.1 codebase

Page 14: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 16: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 17: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Index Condition Pushdown (ICP), Multi-Range Read (MRR)

Page 18: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Subquery optimizations

Semi-join optimization, materialization for non-correlated IN queries, subquery cache

Goodbye rewriting as JOINs or separate queries

DBT-3, 60M rows, 29GB XtraDB

Page 20: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Progress reportingFor 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)

Page 21: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 22: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 23: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 24: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

SphinxSECREATE TABLE t1 (..) ENGINE=SPHINX CONNECTION=”sphinx://localhost:9312/test”;

Engine connects to Sphinx searchd

Let indexing, searching, sorting, filtering be performed by Sphinx

instead of WHERE, ORDER BY, LIMIT

Sphinx is optimized/fast for these tasks

Most of the Sphinx API is exposed to engine

JOIN search table with other MySQL tables

Page 25: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB 5.1

Arrived February 2010

Storage engines: XtraDB, FederatedX, PBXT*, OQGRAPH*, Aria, etc.

microslow patch, processlist w/microsecond precision

table elimination

Page 26: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

What is Aria?

Still just a crash-safe MyISAM

used for temporary tables internally

group commit added in 5.2 to speed up multi-user inserts

Page 27: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

How do we support all this?

Version Released Support till

Latest release MySQL

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

Page 28: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Oh, and we’re fast

Oracle loves MySQL performance on Microsoft Windows. So do we

OLTP read-only OLTP write-only

Page 30: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Knowledgebase

Page 31: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Deployments!

“MariaDB had these same bugs that we ran into with MySQL. However the big difference was that when we reported these bugs, they were quickly resolved within 48 hours!” -- Dreas van Donselaar, Chief Technology Officer, SpamExpertsB.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 providingMariaDB to over 7,000 of their web hosting customers.

“We made the switch on Saturday -- and we’re seeing benefits already -- our daily

optimization time is down from 24 minutes to just 4 minutes” -- Ali Watters, CEO, travelblog.org

happy users: pap.fr, wabtec, Paybox Services, OLX, Jelastic, Web of Trust, SaltOS, ERP5, etc.

Page 32: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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

Page 33: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

We have a book

Page 34: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Other branches

MySQL Percona MariaDB

5.5.20 7.7M 61M

5.5.22 16M 60M

MySQL Percona MariaDB

5.5.20 222299 1587843

5.5.22 438567 1540932

Page 35: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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 :)

Page 36: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Faster even?read only? InnoDB/XtraDB is fine

InnoDB has higher throughput, but stalls & checkpoints w/high write load

Page 37: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Track recordWe 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

http://www.skysql.com/blogs/kolbe/heads-no-more-query-cache-partitioned-tables-mysql-5523

We care about backward compatibility & introduce features carefully

XtraDB innodb_adaptive_checkpoint=none|reflex|estimate|keep_average (no more reflex...)

Page 38: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

We care about quality

Automated test suite run upon every push

Better QA & code coverage

MySQL test cases: 1,765

Percona Server test cases: 1,837

MariaDB test cases: 2,180

Page 39: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

User stats plugin

Disabled by default, consider enabling it to show use! http://mariadb.org/feedback_plugin/

data from over 85 countries!

Page 40: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

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.

Page 41: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

FutureMySQL 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

virtual machine for Cassandra made by community!

Page 42: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

MariaDB Galera Clusterhttp://kb.askmonty.org/en/galera/

Now in ALPHA!Scale your read & write

workloads, automatically, without the need for NDB Cluster!

Page 43: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

Support

mariadb.org/service-providers/

SkySQL partners with K.K.Ashisuto for best local support!

Monty Program does developer support & NRE

http://montyprogram.com/developer-support/

Page 44: A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles

We’re incredibly social

facebook: fb.com/MariaDB.dbms

twitter: @mariadb

google plus: gplus.to/mariadb

we also have a LinkedIn group