© SkySQL Corpora-on Ab. Company Confiden-al.
The new MariaDB offering MariaDB 10, MaxScale, and more
Rasmus Johansson, VP Engineering, SkySQL
24/06/2014 1
© SkySQL Corpora-on Ab. Company Confiden-al.
MariaDB intro
24/06/2014 2
© SkySQL Corpora-on Ab. Company Confiden-al.
What is MariaDB?
• A free fork of MySQL with extra features • features, requested by the users
• Backward compa-ble • file formats, replica-on, configura-on files • aim at 100% drop-‐in replacement
• Community developed • 50% of maria-‐captains are from the community • no hidden agenda
© SkySQL Corpora-on Ab. Company Confiden-al.
Who’s using it?
© SkySQL Corpora-on Ab. Company Confiden-al.
Where to get it
• Distribu-ons: • RedHat Enterprise Linux (default in RHEL 7), Debian, Ubuntu (since 14.04), Fedora, Mageia (default), openSUSE (default), Gentoo, Slackware (default), Arch (default), ALTLinux, TurboLinux, Chakra Project (default), Kdu, …
• FreeBSD, OpenBSD • Mac OS X with MacPorts or Homebrew
• From MariaDB.org • sources, binaries in .tar.gz or .zip (Windows) • Windows MSI installer • MariaDB apt and yum repositories
© SkySQL Corpora-on Ab. Company Confiden-al.
Before MariaDB 10.0
• MariaDB 5.1 – 17 releases since Oct 2009 • Aria, XtraDB, PBXT, FederatedX • table elimina-on, pool of threads,
• MariaDB 5.2 – 15 releases since Apr 2010 • OQGraph, SphinxSE • virtual columns, pluggable auth, segmented key cache, extended sta-s-cs,
• MariaDB 5.3 – 13 releases since July 2011 • major op-mizer improvements • replica-on: group commit, checksums • HandlerSocket, dynamic columns, Windows performance improvements, microsecond support, GIS precise opera-ons, progress repor-ng, …
© SkySQL Corpora-on Ab. Company Confiden-al.
Before MariaDB 10.0
• MariaDB 5.5 – 20 releases since Feb 2012 • new thread pool • non-‐blocking client API • extended keys op-miza-on • dynamic replicate_do_*, replicate_ignore_*, replicate_wild_* variables
© SkySQL Corpora-on Ab. Company Confiden-al.
Other MariaDB projects
• MaxScale • MariaDB Galera Cluster • Connectors/Drivers
• MariaDB C Client Library (LGPL) • MariaDB JDBC driver (LGPL) • MariaDB ODBC driver (LGPL)
• MariaDB Audit Plugin
© SkySQL Corpora-on Ab. Company Confiden-al.
Community ac-vity
• Past month (March 2014): • Added/Changed Ar-cles in the KB: 123 • On Freenode IRC #maria, 550 people wrote 10173 lines
• Source code (Launchpad): • 25 ac-ve branches • 395 commits
24/06/2014 9
MariaDB is now on GitHub:
https://github.com/MariaDB/server/
© SkySQL Corpora-on Ab. Company Confiden-al.
Community Contribu-ons
MariaDB 10.0 major contribu-ons: • Per thread memory coun-ng and usage
• Base code and idea by Lixun Peng, Taobao
• Mul--‐source replica-on
• Base code by Lixun Peng, Taobao • GET_LOCK
• Code by Konstan-n "Kostja" Osipov, mail.ru
• CONNECT storage engine
• Code by Olivier Bertrand
• Spider storage engine metadata_lock_info Informa-on schema
• Code by Kentoku Shiba, Spiral Arms
• Roles
• Code by Vicen-u Ciorbaru, Google Summer of Code 2013
• PCRE Regular Expressions
• Code by Sudheera Palihakkara, Google Summer of Code 2013
• Global Transac-on IDs
• Some patches by Pavel Ivanov, Google
24/06/2014 10
https://mariadb.com/kb/en/log-of-mariadb-contributions/
© SkySQL Corpora-on Ab. Company Confiden-al.
Community Ongoing Dev Projects • WebScaleSQL patches
hpps://mariadb.atlassian.net/browse/MDEV-‐6039
• LevelDB/RocksDB storage engine (persistent key-‐value store for fast storage) hpps://mariadb.com/kb/en/leveldb-‐storage-‐engine/
• Fusion-‐IO page compression hpps://blog.mariadb.org/significant-‐performance-‐boost-‐with-‐new-‐mariadb-‐page-‐compression-‐on-‐fusionio/
• Kerberos authen-ca-on plugin hpps://mariadb.atlassian.net/browse/MDEV-‐4691
• Mroonga storage engine (fast fulltext search) hpps://mariadb.atlassian.net/browse/MDEV-‐5222
• Sta-s-cally op-mize mysql-‐test runs by running less tests, Pablo Estrada, Google Summer of Code hpps://mariadb.atlassian.net/browse/MDEV-‐5776
• CREATE OR REPLACE, CREATE IF NOT EXISTS, DROP IF EXISTS, Sriram Pa-l, Google Summer of Code hpps://mariadb.atlassian.net/browse/MDEV-‐5359
• Self-‐Tuning Op-mizer, Anshu Avinash, Google Summer of Code hpps://mariadb.atlassian.net/browse/MDEV-‐350
• Support of UseServerPrepStmts to MariaDB Java Connector, Puneet Dewan, Google Summer of Code
24/06/2014 11
© SkySQL Corpora-on Ab. Company Confiden-al.
MariaDB 10.0
© SkySQL Ab. Company Confiden-al.
MariaDB 10
● MariaDB 10.0 GA launched March 31st, 2014.
● Application-compatible withMySQL.
● Includes significant unique new features in scalability, replication, performance, NoSQL, operations, security.
● Available under the GPL v2.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Scalability: Parallel Slave Replica-on
● Sponsored by Google. ● Allows slaves to
process update eventsin parallel.
● Uses MariaDB 10’simproved GlobalTransaction ID (GTID).
● MariaDB unlike MySQLcan process multipleupdates for a single database in parallel. Much better throughput.
● Preliminary benchmarks: almost 10x faster at 12 threads. Improves scalability, reduces slave lag,
making slaves more consistent.
MySQL MariaDB
✘ Single threaded per database.
✔ in 10.0.
© SkySQL Ab. Company Confiden-al.
Parallel Slave Benchmark
sysbench OLTP single database slave tps relative to master
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Scalability: Multi-Source Replication
● Collects data for
analytics usingbuilt-in replication.
● Aids in administrationexample: consolidatedbackups of multiple databases.
● Uses MariaDB 10’s improvedGlobal Transaction ID (GTID).
Easier analytics, more insight,
simpler administration, fewer headaches.
Online E-Commerce Application
Master S S S S
Content Management
System
Click-stream data
Data Warehouse Slave ETL
Master S S S S
Master S S S S
MySQL MariaDB
✘
✔ in 10.0.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Scalability: Sharding with Spider
● Contributed by a 3rd party developer. ● Storage engine partitions large tables
across multiple DBs. ● No changes to the client application. ● Developers aren’t aware, can keep
applications simple. ● Allows for more
parallelism, scale-out. ● Transactional storage
engine.
Web-scale, without the development hassle.
Application
Customers
A-H I-P Q-Z
Spider
Customers
A-H
Shard 1
Customers
I-P
Shard 2
Customers
Q-Z
Shard 3
MySQL MariaDB
✘ optional 3rd party install
✔ in 10.0.
Technology Preview
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Performance: TokuDB Storage Engine
● 3rd party partner - TokuTek. ● Drop-in replacement for
InnoDB/XtraDB. ● Advanced indexing and
compression algorithms. ● Transactional. ● Up to 20x performance gain
for inserts/updates. ● Up to 90% less disk storage. ● Online schema changes. ● Reduces or eliminates slave lag. ● Best when DB doesn’t fit in memory,
and SSD longevity is important.
MySQL MariaDB
✘ optional 3rd party install
✔ in 10.0.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Performance: Op-mizer Improvements
● Of 29 distinct enhancements noted,28 are in MariaDB 10. Just 1 only inMySQL 5.6.
● Enhancements include: ○ Disk access optimizations. ○ JOIN optimizations. ○ Subquery optimizations. ○ Optimized derived tables and views. ○ Execution control. ○ Optimizer control. ○ EXPLAIN improvements.
Less I/O, CPU, memory requirements. Faster execution.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Performance: More Enhancements and Features
● Fusion-io Atomic Writes - improvesperformance on popular SSD hardware.✔ exclusive to MariaDB 10
● XtraDB storage engine - enhanced from InnoDB. ● Improved InnoDB storage engine - based on MySQL 5.6. ● Performance schema - real-time performance management. ● Improved thread pool - better concurrent user performance.✔
exclusive to MariaDB 10
● More optimizer improvements - higher efficiency in I/O accesses. ✔ exclusive to MariaDB 10
Faster performance, lower cost.
© SkySQL Ab. Company Confiden-al.
Fusion-‐IO page compression
https://blog.mariadb.org/significant-performance-boost-with-new-mariadb-page-compression-on-fusionio
• Atomic writes gives a performance increase of about 30%. By enabling fast checksum for XtraDB it’s 50%
• By using page compression the compression ratio is leading to better performance and there are less writes to disk.
• Multi-threaded flush provides better throughput and decreases operation latencies delivering a performance boost
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Interoperability: CONNECT Storage Engine
● From 3rd party developer. ● Maps diverse data
to tables. ● JOIN mapped data
to DB tables. ● Flat files including CSV. ● Tables in external DBs. ● Generated tables
(PIVOT etc.) ● Plug-in API for your own mappings.
Powerful tool for data integration, federation.
Application
Spider
MariaDB Parser/Optimizer/Connection Pool
CONNECT Engine
Other Engines
MySQL MariaDB
✘
✔ in 10.0.
Technology Preview
Database Tables
.log
XML CSV
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Interoperability: Cassandra Storage Engine
● Window into a Cassandra ring:read/write like a table in MariaDB.
● Use standard SQL queries. ● JOIN Cassandra data
to MariaDB tables. ● Use a MariaDB cluster
for high-availabilityaccess.
● Bring data fromCassandra into OLTPapplications.
Interoperate with Cassandra.Use Cassandra data in OLTP applications.
Application
Spider
Database Tables
MariaDB Parser/Optimizer/Connection Pool
Cassandra Engine
Other Engines
MySQL MariaDB
✘
✔ in 10.0.
Technology Preview
© SkySQL Ab. Company Confiden-al.
MariaDB 10 NoSQL Features: Dynamic Columns
● Store unstructured data in MariaDB tables with a simple API. ● Use MariaDB’s indexing and transactions to manipulate
“document” style data fast and consistently. ● Nest sets of dynamic columns inside of other dynamic columns -
hierarchical structuring. ● Include multiple rows with dynamic columns in transactions. Process unstructured data in the same way as NoSQL,but
with the power of MariaDB.
Cust ID Account Balance Dyn_Col_BLOBs
2035 $154.04 NAME: John Smith|LOC: 45.35243, -74.98348|IMAGE: x27A8B8C ...
2036 $929.10 NAME: Jane Doe|LOC: 45.35243, -74.98348|AGE: 32| GENDER: F...
2037 $377.53 NAME: Carol Jones|AGE: 43|GENDER: F||IMAGE: xA9674DE678 ...
MySQL MariaDB
✘
✔ in 10.0.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 NoSQL Features: HandlerSocket Plugin
● Simple, low-overheadAPI direct to thestorage engine.
● Bypasses SQLstatement processing.
● Less CPU, memory,I/O, network demands.
● Batches requests foreven less I/O operations.
● Building block for applicationlevel NoSQL processing.
Mix RDBMS applications with high performance NoSQL applications.
Leverage MariaDB’s storage engine architecture for both.
Transactional Application
Database Tables
NoSQL Application
Spider
Connection Pool
InnoDB/XtraDB and Spider Storage Engines
SQL Interface
Parser
Optimizer HandlerSocket Plugin
SQL Statements Simple CRUD API
MySQL MariaDB
✘
✔ in 10.0.
© SkySQL Ab. Company Confiden-al.
Thread Time
27 .003761
28 34.2529
29 .000713
Why is this so slow? Lets find out… SHOW EXPLAIN FOR 28;
ID select_type table possible_keys
rows
1 SIMPLE tbl NULL 1855174
Oh! Sequential scan of a 18M row table… no wonder! I’ll let the team know...
MariaDB 10 Operations:SHOW EXPLAIN Command
To: DevOps Team
From: DBA Debby
Subj. Slow Queries
Hey guys, figured out those blocking queries. The new reservation app is looking for the shortest route but that column has no index - we need one! I’ll add it now. Debby
MySQL MariaDB
✘
✔ in 10.0.
And it works in the slow query log too! Also for UPDATE and DELETE.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Operations: More Enhancements and Features
● Improved Table Discovery - less work for DBAs;integrates storage engines. ✔ exclusive to MariaDB 10
● SHOW PLUGINS SONAME - dynamic report oninstalled components. ✔ exclusive to MariaDB 10
● SHUTDOWN Command - apps can shutdown the databaseprogrammatically. ✔ exclusive to MariaDB 10
● Kill Query by Query ID - fix performance blocks . ● Online ALTER TABLE - schema changes without downtime. ● Per-thread Memory Statistics - easier tuning and problem
diagnosis. ✔ exclusive to MariaDB 10
● Improved Error Messages - faster problem solving.✔ exclusive to MariaDB 10
Manage larger configurations with lower cost, less downtime.
© SkySQL Ab. Company Confiden-al.
Database Tables
MariaDB 10
Role: DBA
Permissions: ● Update Schema ● View Statistics ● Create Database DBA
Developer
Sysadmin
MariaDB 10: Security:Role-Based Access Control
MySQL MariaDB
✘
✔ in 10.0.
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Security: More Enhancements and Features
● Audit Plugin - Identify and correct potential
security breaches. Comply with auditabilityrequirements. ✔ included with MariaDB 10, supported by SkySQL
● PAM Authentication Module - delegate authentication
to the popular Unix single-signon authentication API.✔ exclusive to MariaDB 10
Integrate the database with your security policies.
Simplify administration and compliance.
© SkySQL Ab. Company Confiden-al.
MariaDB Audit Plugin 2.0 Roadmap
● Audit Plugin 1.1 includes table event logging such as triggers and stored procedure calls, unique to its integration with MariaDB.
● Building on these capabilities, V2.0 of the Audit Plugin is planned to include: ○ Optional field substitution of placeholders in query logs to improve
privacy and security. ○ Integration with MariaDB 10 Role-based Access Control - filtering
audit logs by role. ○ Recording of privilege changes as audit-able events. ○ Log rotation.
Confidential
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Roadmap
10.0.X Releases -‐ updates to 10.0 over 2014. • Merge addi-onal MySQL 5.6 changes.
• Improvements to Fusion-‐io SSD atomic write support.
• More thread pool improvements including Percona enhancements.
• SHOW EXPLAIN support for PARTITIONS and EXTENDED apributes.
• CONNECT engine improvements.
• Perform extensive replica-on tes-ng between MySQL 5.6 and MariaDB 10.0 to establish a more complete supportability matrix.
• Open Query Graph (OQGRAPH) engine improvements.
• Experimental Mroonga storage engine -‐ full-‐text for Asian languages.
Confidential
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Roadmap 10.1.X Preliminary Major Feature List (all dot.dot versions): • Integra-on of Galera mul--‐master clusters into MariaDB
• Switch on/off Galera support in conf file
• Merged features from MySQL, Percona, WebscaleSQL: • All func-ons visible from SQL in 5.6. • Character set and colla-on changes. • default_tmp_storage_engine. • Op-mizer features including semi-‐joins+outer-‐joins, op-mizer trace, EXPLAIN JSON, EXPLAIN FOR
CONNECTION. • Percona features: per-‐query variables, userstat improvements, SHOW ENGINE INNODB STATUS
improvements, NUMA improvements. • Selected 5.7 features: UNION ALL without temporary tables, mul-ple triggers on table, new InnoDB, new
Performance Schema instruments, MDL improvements, mul-ple triggers per table, new InnoDB/XtraDB. • Merge WebscaleSQL improvements and integrate stress-‐test.
• Kerberos authen-ca-on support • GIS improvements -‐ full support for OGC compliance • Windowing func-ons
Confidential
© SkySQL Ab. Company Confiden-al.
MariaDB 10 Roadmap
10.1.X Preliminary Major Feature List, con-nued: • Performance boosts: thread management, 16K InnoDB buffers, remote and portable
tablespaces, op-mizer enhancements, temporary table improvements, InnoDB persistent auto-‐increment, query -meouts.
• Performance tuning Parallel Replica-on and GTID, row-‐level PR enhancements, slave execu-on of triggers, more benchmarks.
• Sesng to force InnoDB tables to have a primary key. • Role-‐based access control: features and performance improvements. • Progress report on mysqldump • Memory engine varchar and BLOB types • Community: move version control to GitHub (DONE).
Confidential
© SkySQL Corpora-on Ab. Company Confiden-al.
MariaDB 10 Roadmap
10.1 and following -‐ addi-onal feature ideas under inves-ga-on: • Transac-onal DDL • Indexes on expressions • Field/Column type plug-‐in
• JSON/BSON • YAML • IPv6/IPv4 • UUID • Own datatype for Dynamic
Columns
Confidential
• More storage engines and interoperability with other DBs -‐ poten-ally: • RocksDB/LevelDB • InfiniDB • MongoDB • Hadoop/HDFS • HBase/Honeycomb
• Message queues • Global DDL lock
© SkySQL Corpora-on Ab. Company Confiden-al.
MariaDB Enterprise
24/06/2014 35
© SkySQL Corpora-on Ab. Company Confiden-al.
MariaDB Enterprise: Integra-ng the Complete Solu-on
36
MariaDB Enterprise Subscriptions
DevOps Admin
NoSQLSharding
Clustering
Innovation
Support Consulting
Training RDBA Portal
NRE
Customer Care Partner Products
© SkySQL Corpora-on Ab. Company Confiden-al.
MariaDB Enterprise: What’s In A Subscrip-on?
Benefit What you get beyond the core MariaDB server binaries Documentation Customer portal includes subscription-only material beyond
KnowledgeBase.
Connectors Tested by SkySQL, certified with ISVs.
Product Roadmaps Roadmaps shared with subscribers, who have stronger influence on direction.
Upgrades, Patches Subscribers receive proactive upgrade push, with release notes and advice.
Helpdesk Support Subscribers receive consultative support and hot-fixes, beyond break/fix.
Bundled Partner Tools
Selected partner tools offered as part of subscription.