The New Mariadb Offering
Total Page:16
File Type:pdf, Size:1020Kb
The new MariaDB offering MariaDB 10, MaxScale, and more Rasmus Johansson, VP Engineering, SkySQL 24/06/2014 © SkySQL Corporaon Ab. Company Confiden-al. 1 MariaDB intro 24/06/2014 © SkySQL Corporaon Ab. Company Confiden-al. 2 What is MariaDB? • A free fork of MySQL with extra features • features, requested by the users • Backward compable • file formats, replicaon, configuraon files • aim at 100% drop-in replacement • Community developed • 50% of maria-captains are from the community • no hidden agenda © SkySQL Corporaon Ab. Company Confiden-al. Who’s using it? © SkySQL Corporaon 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 Corporaon Ab. Company Confiden-al. Before MariaDB 10.0 • MariaDB 5.1 – 17 releases since Oct 2009 • Aria, XtraDB, PBXT, FederatedX • table eliminaon, pool of threads, • MariaDB 5.2 – 15 releases since Apr 2010 • OQGraph, SphinxSE • virtual columns, pluggable auth, segmented key cache, extended stas-cs, • MariaDB 5.3 – 13 releases since July 2011 • major op-mizer improvements • replicaon: group commit, checksums • HandlerSocket, dynamic columns, Windows performance improvements, microsecond support, GIS precise operaons, progress repor-ng, … © SkySQL Corporaon 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-mizaon • dynamic replicate_do_*, replicate_ignore_*, replicate_wild_* variables © SkySQL Corporaon 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 Corporaon 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): : GitHub • 25 ac-ve branches MariaDB is now on • 395 commits https://github.com/MariaDB/server/ 24/06/2014 9 © SkySQL Corporaon Ab. Company Confiden-al. Community Contribu-ons MariaDB 10.0 major contribu-ons: • Spider storage engine metadata_lock_info Informaon schema • Per thread memory coun-ng and usage • Code by Kentoku Shiba, Spiral Arms • Base code and idea by Lixun Peng, Taobao • Roles • Mul--source replicaon • Code by Vicenu Ciorbaru, Google Summer of Code 2013 • Base code by Lixun Peng, Taobao • PCRE Regular Expressions • GET_LOCK • Code by Sudheera Palihakkara, Google • Code by Konstan-n "Kostja" Osipov, Summer of Code 2013 mail.ru • Global Transac-on IDs • CONNECT storage engine • Some patches by Pavel Ivanov, Google • Code by Olivier Bertrand https://mariadb.com/kb/en/log-of-mariadb-contributions/ 24/06/2014 © SkySQL Corporaon Ab. Company Confiden-al. 10 Community Ongoing Dev Projects • WebScaleSQL patches • Stas-cally op-mize mysql-test runs by hpps://mariadb.atlassian.net/browse/MDEV-6039 running less tests, Pablo Estrada, Google Summer of Code • LevelDB/RocksDB storage engine (persistent key-value hpps://mariadb.atlassian.net/browse/ store for fast storage) MDEV-5776 hpps://mariadb.com/kb/en/leveldb-storage-engine/ • CREATE OR REPLACE, CREATE IF NOT • Fusion-IO page compression EXISTS, DROP IF EXISTS, Sriram Pal, hpps://blog.mariadb.org/significant-performance- Google Summer of Code hpps://mariadb.atlassian.net/browse/ boost-with-new-mariadb-page-compression-on- MDEV-5359 fusionio/ • Self-Tuning Op-mizer, Anshu Avinash, • Kerberos authen-caon plugin Google Summer of Code hpps://mariadb.atlassian.net/browse/MDEV-4691 hpps://mariadb.atlassian.net/browse/ • Mroonga storage engine (fast fulltext search) MDEV-350 hpps://mariadb.atlassian.net/browse/MDEV-5222 • Support of UseServerPrepStmts to MariaDB Java Connector, Puneet Dewan, Google Summer of Code 24/06/2014 © SkySQL Corporaon Ab. Company Confiden-al. 11 MariaDB 10.0 © SkySQL Corporaon Ab. Company Confiden-al. MariaDB 10 ● MariaDB 10.0 GA launched March 31st, 2014. ● Application-compatible with MySQL. ● 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: MySQL MariaDB ✘ ✔ Single in 10.0. Parallel Slave Replicaon threaded per database. ● Sponsored by Google. ● Allows slaves to process update events in parallel. ● Uses MariaDB 10’s improved Global Transaction ID (GTID). ● MariaDB unlike MySQL can process multiple updates 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. © 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: MySQL MariaDB ✘ ✔ Multi-Source Replication in 10.0. Content Online E- Management Commerce System Application Master Master ● Collects data for S S S S S S S S analytics using built-in replication. Click-stream data Master ● Aids in administration S S S S example: consolidated backups of multiple databases. ● Uses MariaDB 10’s improved Global Transaction ID (GTID). Slave ETL Data Warehouse Easier analytics, more insight, simpler administration, fewer headaches. © SkySQL Ab. Company Confiden-al. Technology Preview MariaDB 10 Scalability: MySQL MariaDB ✘ ✔ Sharding with Spider optional 3rd in 10.0. party install ● Contributed by a 3rd party developer. Application ● Storage engine partitions large tables across multiple DBs. Spider ● No changes to the client application. Customers ● Developers aren’t aware, can keep A-H I-P applications simple. Q-Z ● Allows for more parallelism, scale-out. Shard 1 Shard 2 Shard 3 ● Transactional storage Customers Customers Customers engine. A-H I-P Q-Z Web-scale, without the development hassle. © SkySQL Ab. Company Confiden-al. MariaDB 10 Performance: MySQL MariaDB ✘ ✔ TokuDB Storage Engine optional 3rd in 10.0. party install ● 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. © SkySQL Ab. Company Confiden-al. MariaDB 10 Performance: Op-mizer Improvements ● Of 29 distinct enhancements noted, 28 are in MariaDB 10. Just 1 only in MySQL 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 - improves performance 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 • 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 https://blog.mariadb.org/significant-performance-boost-with-new-mariadb-page-compression-on-fusionio © SkySQL Ab. Company Confiden-al. Technology Preview MariaDB 10 Interoperability: MySQL MariaDB CONNECT Storage Engine ✘ ✔ in 10.0. ● From 3rd party developer. Application ● Maps diverse data to tables. MariaDB Parser/Optimizer/Connection Pool ● JOIN mapped data Spi der to DB tables. CONNECT Other Engine Engines ● Flat files including CSV. ● Tables in external DBs. ● Generated tables (PIVOT etc.) .log CSV Database ● Plug-in API for your own mappings. XML Tables Powerful tool for data integration, federation. © SkySQL Ab. Company Confiden-al. Technology Preview MariaDB 10 Interoperability: MySQL MariaDB Cassandra Storage Engine ✘ ✔ in 10.0. ● Window into a Cassandra ring: Application read/write like a table in MariaDB. ● Use standard SQL queries. ● JOIN Cassandra data MariaDB Parser/Optimizer/ConnectionSpi Pool to MariaDB tables. der Cassandra Other Engine Engines ● Use a MariaDB cluster for high-availability access. ● Bring data from Cassandra into OLTP Database applications. Tables Interoperate with Cassandra. Use Cassandra data in OLTP applications. © SkySQL Ab. Company Confiden-al. MariaDB 10 NoSQL Features: MySQL MariaDB Dynamic Columns ✘ ✔ in 10.0. 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