© MariaDB Corpora,on Ab. Company Confiden,al.
High Performance Drupal with MariaDB Maria Luisa Raviol
MariaDB -‐ Senior Sales Engineer
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Corporation
• MariaDB Corporation (former SkySQL AB) was founded by original MySQL AB team members including Michael “Monty” Widenius
• Strongest team of core MySQL experts
• Global, follow-the-sun, 24/7 enterprise support for MariaDB and MySQL
• Powerful distribution and customer base• MariaDB is adopted by key open source communities• Wikipedia (English, German) is running MariaDB
• Over 400 enterprise customers
2
Thursday, 2 October 2014
Finance Travel Retail
Telecom Technology & .gov/.edu Media
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
400+ Customers in 33 Countries
3
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
What is MariaDB?
• MariaDB is an enhanced, drop-in replacement for MySQL.• Community oriented• Not backed up by any company but governed by a foundation MariaDB.org
• It is supported by MariaDB Corporation and we are backed up by the foundation
• MariaDB is becoming the leading database platform for cloud
• RHEL7, Debian, Fedora, OpenSUSE are shipping MariaDB as default replacing MySQL• we also provide third level support for SLES 12, which will include MariaDB
4
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
The open source community is switching from MySQL to MariaDB
5
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
Why MariaDB for Drupal?
• Because MariaDB is part of the Drupal Setup process• it is recommended in the documentation• https://www.drupal.org/requirements/database
• MariaDB is 100% drop in replacement for MySQL • MariaDB has a better Query Optimiser• It comes with MariaDB only features that can improve Drupal performances
6
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB vs MySQL
• More Storage Engines• XtraDB (drop-in replacement for InnoDB)• FederatedX (drop-in replacement for Federated)• SphinxSE• TokuDB• ....
• Speed Improvements• optimizer enhancements (Subqueries are now finally usable!)• Parallel Replication• Pool of Threads• Faster and safer replication
• Extensions & new features• Dynamic Columns support• Extended User Statistics• KILL all queries for a user• KILL QUERY ID - terminates the query by query_id, leaving the connection intact• Group commit for the binary log. This makes replication notably faster!• GIS Functionality• Multi-source replication.• Roles. — new in 10.0
7
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Features for Drupal Users
XtraDB Storage Engine
• it is MariaDB default storage engine• enhanced version for InnoDB storage engine
• less check pointing, less flushing to disk, stable performances• developed by both MariaDB Corporation and Percona• fast innodb restart, pre-populate the innodb buffer pool• best use of RAM
• improved single core performances• great for cloud environment
• It is backwards-compatible with InnoDB• so it can be used as a drop-in replacement
• Still with MyISAM?• It still is great for bulk inserts• but...major read bottlenecks because it is affected by the key buffer
• ADVICE: migrate to InnoDB or XtraDB unless you really want to use MyISAM
8
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Features to benefit Drupal users
Sphynx Storage Engine
• MariaDB support full text search with SphinxSE• With MariaDB SphynxSE you can do your full text search with sphynx and still use your regular
database• Engine connects to Sphinx searchd
CREATE TABLE t(...) ENGINE=SPINX CONNECION=”sphinx://localohost:9312/test”;
• Let Sphinx do what it is designed to do• Let indexing, searching, sorting, filtering be performed by Sphinx as it is optimised for these tasks• JOIN search table with other MariaDB tables
9
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Features to benefit Drupal users
Other storage engines
TokuDB• uses fractal Tree indexes instead of B-Tree• improved write operations• data compression• online schema flexilbilty• great for SSD usage
CONNECT• can read/write/update in/to different formats: .DBF, .CSV, .INI and many many other more
10
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Features for Drupal Users
• Threadpool
• This his is probably the most useful for Drupal users
• there are many short running queries that are executed when reaching a website any time you load a page that does not hit the cache• If you have many concurrent clients or users you will open one thread per connection
• Many active threads are a performance killer
• With MariaDB you can create pool of threads that keep on being reused.
• When should you use Threadpool?• Threadpools are most efficient in situations where queries are relatively short
and the load is CPU bound (OLTP workloads).• So, if you have many concurrent clients or many users that potentially
use a thread each turn this on in your My.cnf
11
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Features to benefit Drupal users
Subqueries• With MariaDB, Subqueries Materialise• MySQL users know that basically subqueries do not work and they used to be rewritten with joins or
separate queries• MariaDB has Subquery cache and it performs better than MySQL 5.6’s subquery optimiser
Group Commit• The idea with group commit is to amortise the costs of each fsync() over multiple commits from
multiple parallel transactions. • If there are many transactions in parallel trying to commit, we can force all of them to disk at once
with a single fsync(), rather than do one fsync() for each.• effective if you use replication• largely used by facebook• if you’re relying on replication to scale Drupal you will probably end up in some
slave lag and turning group commit on will probably help
12
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Features to benefit Drupal users
GIS precise support• in MySQL was only drafted• MySQL has OpenGIS SFS it allows you to find the minimum boundary region• MariaDB has full OpenGIS support inside MariaDB• SQL with full geometry types• https://mariadb.com/kb/en/mariadb/documentation/gis-functionality/gis-features-in-533/
13
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Galera Cluster Quick Overview
14
•MultiMaster solution that comes with synchronous replication•Based on InnoDB and hence XtraDB so loved by Drupal users•Fully Read-Write scalable•Guarantees no lag or lost transactions
•Made for today’s cloud based environments
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Galera Cluster Quick Overview
• For Drupal Users Galera Cluster looks like one big database with multiple entry points
• many different databases on the network
• The client can connect any node• once a transaction has been
committed on one node we are sure that the other nodes have received the transaction
15
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
MariaDB Galera Cluster Quick Overview
Quorum Failure• Galera Cluster is quorum based
• when cluster partitioning is detected, the majority partition “has quorum” and can continue• a minority partition cannot commit transaction, but will attempt to reconnect to primary partition
• Load Balancer will detect errors and remove node from cluster pool
• 50% does not constitute a majority so the minimum number of nodes for a Galera Cluster is 3
• Galera works with multiple-geographies across WANs• good for distributed/cloud based solutions• synchronous in one DC, use Async or time delayed replication across WAN
16
Thursday, 2 October 2014
09/25/14 © MariaDB Corpora,on Ab. Company Confiden,al.
References
Maria Luisa Raviol: [email protected]
MariaDB: www.mariadb.org www.mariadb.com
KB: https://mariadb.com/kb/en/mariadb/documentation/optimization-and-tuning/ https://mariadb.com/kb/en/mariadb/documentation/storage-engines/
https://mariadb.com/kb/en/mariadb/documentation/replication-cluster-multi-master/
17
Thursday, 2 October 2014