SlideShare a Scribd company logo
Meet MariaDB 10.1
Colin Charles, Team MariaDB, MariaDB Corporation
colin@mariadb.com | byte@bytebot.net
http://bytebot.net/blog/ | @bytebot on Twitter
whoami
• Work on MariaDB at MariaDB Corporation
(SkySQL Ab)
• Merged with Monty Program Ab, makers of
MariaDB
• Formerly MySQL AB (exit: Sun Microsystems)
• Past lives include Fedora Project (FESCO),
OpenOffice.org
• MySQL Community Contributor of theYear Award
winner 2014
2
What is MariaDB Server?
• GPLv2 branch of MySQL with a lot of added
community development
• Feature enhanced
• Aims: Application compatibility & feature
completeness with MySQL
• For all intents and purposes, a drop-in
replacement
Why MariaDB?
• MySQL has a single owner; MariaDB is backed by
the MariaDB Foundation and MariaDB Corporation
• MySQL ecosystem development is at its most
vibrant now than it has ever been
• Community can get features inside a shipping
server with ease
• Storage engine vendors get shipping & wide
distribution including testing
MariaDB, the ecosystem
• Besides the Server, we do develop LGPL
Connectors
• Focus on making “enterprise” features
opensource
• threadpool is a great example of working in the
open
• Open content (& friendly licensed) Knowledge
Base
MariaDB thru the years
• MariaDB 5.1
• MariaDB 5.2
• MariaDB 5.3
• MariaDB 5.5
• MariaDB 10.0
• MariaDB 10.1
• MariaDB Galera
Cluster 5.5
• MariaDB Galera
Cluster 10.0
• C Connector
• Java Connector
• ODBC Connector
Where is MariaDB found?
• http://mariadb.org/
• Your Linux/BSD distribution - it is the default in
RHEL 7, SUSE Enterprise 12, openSUSE,
CentOS, Fedora, OpenBSD, etc.
• and a choice in Debian & Ubuntu
• Pivotal.io CloudFoundry, RackSpace Cloud,
Azure, etc.
MariaDB on AWS RDS!
8
The “community release”
• 30 Jun 2014 - MariaDB
10.1.0
• 17 Oct 2014 - MariaDB
10.1.1
• 7 Dec 2014 - MariaDB 10.1.2
• 2 March 2015 - MariaDB
10.1.3
• 13 April 2015 - MariaDB
10.1.4
• 4 June 2015 - MariaDB
10.1.5
• 27 July 2015 - MariaDB
10.1.6
• 9 September 2015 - MariaDB
10.1.7 RC
• 17 October 2015 - MariaDB
10.1.8 GA
• 23 November 2015 -
MariaDB 10.1.9
Themes
• Security
• High Availability
• High Performance
• Operational Ease
• Better for developers and DBAs
Security
Encryption
• Encryption: tablespace and table level encryption with support
for rolling keys using the AES algorithm
• table encryption — PAGE_ENCRYPTION=1
• tablespace encryption — encrypts everything including log
files
• New file_key_management_filename,
file_key_management_filekey,
file_key_management_encryption_algorithm
• Well documented — https://mariadb.com/kb/en/mariadb/data-at-
rest-encryption/
Encryption II
• The key file contains encryption keys identifiers
(32-bit numbers) and hex-encoded encryption
keys (128-256 bit keys), separated by a
semicolon.
• don’t forget to create keys!
• eg. openssl enc -aes-256-cbc -md
sha1 -k secret -in keys.txt -out
keys.enc
my.cnf config
[mysqld]
plugin-load-add=file_key_management.so
file-key-management
file-key-management-filename = /home/mdb/keys.enc
innodb-encrypt-tables
innodb-encrypt-log
innodb-encryption-threads=4
aria-encrypt-tables=1 # PAGE row format
encrypt-tmp-disk-tables=1 # this is for Aria
Encryption III
CREATE TABLE customer (
customer_id bigint not null primary key,
customer_name varchar(80),
customer_creditcard varchar(20))
ENGINE=InnoDB
page_encryption=1
page_encryption_key=1;
Encryption IV
• Tablespace encryption (Google)
• again, you need to pick an encryption algorithm
• specify what to encrypt: innodb-encrypt-tables,
aria, aria-encrypt-tables, encrypt-tmp-
disk-tables, innodb-encrypt-log
• don’t forget key rotation:
• innodb-encryption-threads=4
• innodb-encryption-rotate-key-age=1800
Encryption V
• we also have tablespace scrubbing
• background process that regularly scans
through the tables and upgrades the
encryption keys
• scrubbing works for tablespaces and logs
• —encrypt-tmp-files
• —encrypt-binlog
Encryption VI
• /etc/my.cnf.d/enable_encryption.preset
• Consider using Eperi Gateway for Databases
• MariaDB Enterprise will have a plugin for Amazon Key
Management Server (KMS)
• mysqlbinlog has no way to read (i.e. decrypt) an
encrypted binlog
• This does not work with MariaDB Galera Cluster yet
(gcache is not encrypted yet), and also xtrabackup needs
additional work (i.e. if you encrypt the redo log)
Passwords
• Password validation plugin
• https://mariadb.com/kb/en/mariadb/development/mariadb-
internals-documentation/password-validation/
• simple_password_check password validation plugin
• can enforce a minimum password length and guarantee that a
password contains at least a specified number of uppercase
and lowercase letters, digits, and punctuation characters.
• cracklib_password_check password validation plugin
• Allows passwords that are strong enough to pass CrackLib test.
This is the same test that pam_cracklib.so does
SQL Error Logging Plugin
• Log errors sent to clients in a log file that can be
analysed later. Log file can be rotated
(recommended)
• a MYSQL_AUDIT_PLUGIN
install plugin SQL_ERROR_LOG soname
'sql_errlog.so';
Audit Plugin
• Log server activity - who connects to the server,
what queries run, what tables touched - rotating
log file or syslogd
• MariaDB has extended the audit API, so user
filtering is possible
• a MYSQL_AUDIT_PLUGIN
INSTALL PLUGIN server_audit SONAME
‘server_audit.so’;
Authentication Plugins
• PAM plugin (so it works against LDAP, SSH
passphrases, etc.)
• Kerberos plugin (GSSAPI on Linux, and includes
Windows-based SSPI authentication support)
• Beware: client libraries need to be compiled
against the new libmysqlclient (er,
libmariadbclient)
WebScaleSQL
• WebScaleSQL improvements
• https://mariadb.atlassian.net/browse/
MDEV-6039
• Lots of running thru AddressSanitizer (ASan)
• Many of these also get backported to 10.0.13
Installation
• Using your Linux distribution… mostly gets you MariaDB when you
ask for mysql-server
• Except on Debian/Ubuntu
• However, when you get mariadb-server, you get an
authentication plugin — auth_socket for “automatic logins”
• You are asked by debhelper to enter a password
• You can use the APT/YUM repositories from Oracle MySQL,
Percona or MariaDB
• Don’t disable SELinux: system_u:system_r:mysqld_t:s0
Enable log-warnings
• Enable —log_warnings=2
• Can keep track of access denied messages
• Worth noting there are differences here in MySQL &
MariaDB
• https://dev.mysql.com/doc/refman/5.6/en/server-
options.html#option_mysqld_log-warnings
• https://mariadb.com/kb/en/mariadb/server-system-
variables/#log_warnings
Roles
• Bundles users together, with similar privileges -
follows the SQL standard
CREATE ROLE audit_bean_counters;
GRANT SELECT ON accounts.* to
audit_bean_counters;
GRANT audit_bean_counters to ceo;
Compile-time options
• Security hardening by default via gcc
• -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --
param=ssp-buffer-size=4 -
D_FORTIFY_SOURCE=2
• Fixed a numerous amount of CVEs
• https://mariadb.com/kb/en/mariadb/what-is-
mariadb-101/#security-vulnerabilities-fixed-in-
mariadb-101
Preventing SQL Injections
• MySQL Enterprise Firewall ($$$)
• http://mysqlserverteam.com/new-mysql-enterprise-
firewall-prevent-sql-injection-attacks/
• MaxScale Database Firewall filter (write your own
regex)
• https://mariadb.com/kb/en/mariadb-enterprise/
maxscale/maxscale-database-firewall-filter/
• https://mariadb.com/blog/maxscale-firewall-filter
What’s missing from 5.7
• mysql_config_editor - store authentication
credentials in an encrypted login path file
named .mylogin.cnf
• Random ‘root’ password on install
• mysql_install_db —random-passwords stored
in $HOME/.mysql_secret
MySQL 5.7
• Improved password expiry — automatic password
expiration available, so set
default_password_lifetime in my.cnf
• You can also require password to be changed every n-
days
• ALTER USER ‘foo'@'localhost' PASSWORD EXPIRE
INTERVAL n DAY;
• There is also account locking/unlocking now
• ACCOUNT LOCK/ACCOUNT UNLOCK
SSL
• You’re using the cloud and you’re using
replication… you don’t want this in cleartext
• Setup SSL (note: yaSSL vs OpenSSL can cause
issues)
• https://dev.mysql.com/doc/refman/5.6/en/ssl-
connections.html
• Worth noting 5.7 has a new tool:
mysql_ssl_rsa_setup
sha256_password
• Default in 5.6, needs SSL-built MySQL (if using it, best to set it
in my.cnf)
• default-authentication-plugin=sha256_password
• Default SSL is yaSSL, but with OpenSSL you get RSA
encryption
• client can transmit passwords to RSA server during
connection
• There exists key paths for private/public keys
• Passwords never exposed as cleartext when connecting
5.7 mysql_no_login
• mysql_no_login - prevents all client connections
to an account that uses it
• https://dev.mysql.com/doc/refman/5.7/en/mysql-
no-login-plugin.html
High Availability
MariaDB 10 replication:
provisioning a new slave
SET GLOBAL GTID_SLAVE_POS =
BINLOG_GTID_POS("masterbin.00045",
600);
CHANGE MASTER TO
master_host="192.168.2.4",
master_use_gtid=slave_pos;
START SLAVE;
Replication: turning on GTID
for slaves
STOP SLAVE;
CHANGE MASTER TO
master_use_gtid=current_pos;
START SLAVE;
Replication: change masters
STOP SLAVE;
CHANGE MASTER TO
master_host="10.2.3.5";
START SLAVE;
Why different GTID
compared to 5.6?
• MySQL 5.6 GTID does not support multi-source
replication
• Supports —log-slave-updates=0 for (space)
efficiency
• 5.7 has this fixed
• Enabled by default, with self-healing capabilities
Binlog (size matters!)
• Example query: INSERT INTO t1 VALUES
(10, “foo”);
• MySQL 5.6… 265 bytes
• MariaDB 10.0… 161 bytes
Multi-source replication
• Work from Taobao
• Many users partition data across many masters... now you can
replicate many masters to a single slave
• Great for analytical queries, complete backups, etc.
• @@default_master_connection contains current connection name
(used if connection name is not given)
• All master/slave commands take a connection name now (like
CHANGE MASTER “connection_name”, SHOW SLAVE
“connection_name” STATUS, etc.)
• https://kb.askmonty.org/en/multi-source-replication/
Galera Cluster integrated
• Full integration of Galera Cluster into MariaDB 10.1
• no lost transactions, optimisations for WAN
replication, non-blocking DDL, no limits on
transaction size
• Server version: 10.1.3-MariaDB-wsrep
MariaDB Server, wsrep_25.10.r4144
• Granular monitoring in INFORMATION_SCHEMA
— WSREP_MEMBERSHIP, WSREP_STATUS
Optimistic parallel
replication
• Before, transactions committed in parallel on the
master could be run in parallel
• Now, more than one transaction will be
considered to be run in parallel giving another
performance boost in master-to-slave replication
• Need a 10.1 master to work
• https://mariadb.atlassian.net/browse/MDEV-6676
Replication: START TRANSACTION
WITH CONSISTENT SNAPSHOT
• Works with the binlog, possible to obtain the binlog position
corresponding to a transactional snapshot of the database without
blocking any other queries.
• by-product of group commit in the binlog to view commit ordering
• Used by the command mysqldump--single-transaction --
master-data to do a fully non-blocking backup which can be used
to provision a new slave
• Works consistently between transactions involving more than one
storage engine
• https://kb.askmonty.org/en/enhancements-for-start-transaction-with-
consistent/
More in replication
• Enhanced semi-sync replication (like in 5.7 -
thanks FB/Google)
• domain_id based replication filters
• Slaves can execute triggers now (in RBR)
• Dump thread enhancements (remove binlog lock
LOCK_log) from 5.7 included (Google)
High Performance
An opensource threadpool
• Modified from 5.1 (libevent based), great for CPU bound
loads and short running queries
• No minimization of concurrent transactions with dynamic
pool size
• thread_handling=pool-of-threads
• https://mariadb.com/kb/en/mariadb/thread-pool-in-mariadb/
• now you can also have a priority mode for tickets
Threadpool
InnoDB improvements
• Multi-threaded flush (also in 5.7, different implementation +
we’re first)
• 64KB pages in InnoDB (old limit = 16KB).
• Defragementation (FB, backported by DaumKakao)
• I_S.INNODB_SEMAPHORE_WAITS, I_S.INNODB_MUTEXES
• Forced primary key
• If option is true, create table without primary key or unique
key where all keyparts are NOT NULL is not accepted.
Instead an error message is printed.
InnoDB WebScaleSQL
• MDEV-6936: Buffer pool list scan optimisation
• MDEV-6929: Port Facebook Prefix Index Queries Optimization
• MDEV-6932: Enable Lazy Flushing
• MDEV-6931: Page cleaner should do LRU flushing regardless of server activity
• fixes mysql#71988, mysql#70500
•  DB-746 merge clustering key is covering key for mariadb 10 (TokuDB)
• MDEV-6933: Spurious lock_wait_timeout_thread wakeup in
lock_wait_suspend_thread()
• fixes mysql#72123
Scalability improvements
• Removing locks using lock free data structures
• in MDL (metadata locking)
• in TDC (table defined cache)
• in XA (XID hash)
• http://svoj-db.blogspot.ru/2014/12/mariadb-on-power8-2014-wrap-up.html
Operational Ease
Per query variables
• Long history (http://www.bytebot.net/blog/
archives/2014/05/04/per-query-variable-settings-
in-mysqlpercona-serverwebscalesql)
• SET STATEMENT
max_statement_time=1000 FOR SELECT
name FROM name ORDER BY name;
Statement timeouts
• MAX_STATEMENT_TIME to abort long running
queries
• We call it “query timeouts” + have a compatible
syntax
• https://mariadb.atlassian.net/browse/MDEV-4427
New KILL syntax
• HARD | SOFT & USER USERNAME are MariaDB-specific (5.3.2)
• KILL QUERY ID query_id (10.0.5) - kill by query id, rather than
thread id
• SOFT ensures things that may leave a table in an inconsistent
state aren’t interrupted (like REPAIR or INDEX creation for
MyISAM or Aria)
KILL [HARD | SOFT] [CONNECTION | QUERY]
[thread_id | USER user_name]
Progress reporting
• ALTER TABLE & 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)
Better for Developers
and DBAs
Optimiser enhancements
• UNION ALL without temporary tables (5.7)
• Improve ORDER BY … LIMIT in optimiser
• ANALYZE <statement>
• Mostly there is EXPLAIN JSON (like 5.6)*
• EXPLAIN ANALYZE with FORMAT=JSON
• includes data from the query execution itself — this is MariaDB
only
• https://mariadb.com/kb/en/mariadb/analyze-formatjson-
examples/
Virtual columns
• A column in a table that has its value automatically
calculated either with a pre-calculated/
deterministic expression or values of other fields
in the table
• PERSISTENT (computed when data is inserted or
stored in a table) or VIRTUAL (like a VIEW)
• Similar to MS SQL or Oracle
• https://kb.askmonty.org/en/virtual-columns/
CONNECT
• CONNECT having full JSON/BSON support
• Can read/write filename.json files with ease
• Writing — INSERT, UPDATE, DELETE is
supported
• Naturally the other good use? ODBC
connections to other databases
Other bits
• CREATE or REPLACE for most database objects
minus indexes
• SET DEFAULT ROLE (there is a default role now for
current user)
• FRM files are now not created for temporary tables
• INFORMATION_SCHEMA.SYSTEM_VARIABLES -
information for system variables
• Microseconds in GET_LOCK()
Other bits
• @@sql_log_slow can now be controlled on a
session basis (not just globally)
• Sequence engine enabled by default
• default_tmp_storage_engine option
• ALGORITHM column in I_S.VIEWS
GIS
• Full compliance for the OGC standards around GIS.
• MDEV-4045 Missing OGC Spatial functions
• ST_Boundary, ST_ConvexHull, ST_IsRing,
ST_PointOnSurface, ST_Relate
• MDEV-60 Support for Spatial Reference systems for the GIS
data. MDEV-12 OpenGIS: create required tables:
GeometryColumns, related views.
• I_S tables: GEOMETRY_COLUMN SPATIAL_REF_SYS
• REF_SYSTEM_ID per GEOMETRY column
Compatibility
• Temporary tables are stored in Aria but now there is a —
default-tmp-storage-engine option
• engine_condition_pushdown flag removed (its always
on for engines that support it)
• --mysql56-temporal-format option to use the
MySQL-5.6 low level formats to store TIME, DATETIME and
TIMESTAMP types
• PERFORMANCE_SCHEMA disabled by default like in 10.0
• also, no .frm files created (faster startup)
“Community Release”
Thanks!
• Google - encryption, scrubbing,
enhanced semisync, dump
thread, thd_specifics plugin
service
• Eperi - encryption
• DaumKakao - defragmentation,
online alter progress monitoring
• Antony Curtis - compound
statements
• Sriram Patil (GSoC) - CREATE or
REPLACE/IF NOT EXISTS
• Daniel Black - finer grained status
variables for replication monitoring
• FusionIO - atomic writes, page
compression, TRIM, multi-
threaded flushing
• Facebook — defragmentation,
prefix index queries optimization,
lazy flushing, buffer pool list scan
optimization, configurable long,
semaphore wait timeout
• Percona - SET STATEMENT,
enforce_storage_engine
Welcoming 5.7 features
MariaDB had
• Multi-source replication
• Dynamic replication filters
• SHOW EXPLAIN for
connection_id
• GIS functionality
• Statement timeouts
• Change master without
stopping SQL thread
• Online GTID
implementation
• GTID no longer requires
log-slave-updates to
be enabled
• Virtual columns
(generated columns)
• SHUTDOWN command
• FusionIO functionality
MariaDB still rocks!
• START TRANSACTION
WITH CONSISTENT
SNAPSHOT
• Integrated Galera Cluster
• Table/tablespace encryption
• Optimistic parallel
replication
• Enhanced semi-sync
replication
• InnoDB defragmentation
• ANALYZE <statement>
• Threadpool
• cracklib_password_check
• SQL error logging plugin
• Extended REGEXP
• Roles
Participate!
• Contribute code - github.com/mariadb/server
• Write KB articles - http://mariadb.com/kb/
• Report bugs: http://mariadb.org/jira
• Join us on #maria at irc.freenode.net
• Enable the feedback plugin ([enable-feedback] in my.cnf)
• Mailing lists: maria-discuss, maria-developers
• Tweet us @mariadb, Like us on FB, + on GPlus
Books!
1. MariaDB Crash Course, Ben Forta (September 2011)
2. Getting Started with MariaDB, Daniel Bartholomew (October 2013)
3. MariaDB Cookbook, Daniel Bartholomew (March 2014)
4. Real MariaDB, Matt Lee (April 2014)
5. Building a Web Application with PHP & MariaDB: A Reference Guide, Sai
Srinivas Sriparasa (June 2014)
6. MariaDB: Beginners Guide, Rodrigo Ribeiro (August 2014)
7. Mastering MariaDB, Federico Razzioli (September 2014)
8. MariaDB High Performance, Pierre Mavro (September 2014)
9. Learning MySQL & MariaDB, Russell Dyer (April 2015)
In conclusion
• MariaDB is GPLv2 licensed, freedom
guaranteed
• Its feature complete with MySQL + loaded with
extras
• Enterprise features made open is great for users
• Its distributed everywhere
A word from your sponsors
• MariaDB Corporation sponsored my T&E to
come to the meetup
• Remember you can buy a MariaDB Enterprise
subscription to help you with your cloud
deployments, MariaDB Server usage, etc.
• Services include: 24x7 support, consulting,
training, remote DBA services, non-recurring
engineering and more for all variants of MySQL
Thank you!
Colin Charles
colin@mariadb.com / byte@bytebot.net
http://bytebot.net/blog | @bytebot on twitter
slides: slideshare.net/bytebot

More Related Content

What's hot

Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
Colin Charles
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
Colin Charles
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a package
Colin Charles
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Colin Charles
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
Colin Charles
 
My first moments with MongoDB
My first moments with MongoDBMy first moments with MongoDB
My first moments with MongoDB
Colin Charles
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
Colin Charles
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
Colin Charles
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
Colin Charles
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
Ivan Zoratti
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
Colin Charles
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Colin Charles
 
A beginners guide to MariaDB
A beginners guide to MariaDBA beginners guide to MariaDB
A beginners guide to MariaDB
Colin Charles
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015
Colin Charles
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC
Colin Charles
 
Why MariaDB?
Why MariaDB?Why MariaDB?
Why MariaDB?
Colin Charles
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
Colin Charles
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
Colin Charles
 

What's hot (20)

Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a package
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
My first moments with MongoDB
My first moments with MongoDBMy first moments with MongoDB
My first moments with MongoDB
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 
A beginners guide to MariaDB
A beginners guide to MariaDBA beginners guide to MariaDB
A beginners guide to MariaDB
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC
 
Why MariaDB?
Why MariaDB?Why MariaDB?
Why MariaDB?
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
 

Similar to Meet MariaDB Server 10.1 London MySQL meetup December 2015

MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)
Colin Charles
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
Colin Charles
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Codership Oy - Creators of Galera Cluster
 
Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)
kayokogoto
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
Ben Krug
 
MariaDB 10 and what's new with the project
MariaDB 10 and what's new with the projectMariaDB 10 and what's new with the project
MariaDB 10 and what's new with the projectColin Charles
 
Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么
YUCHENG HU
 
Tungsten Webinar: v6 & v7 Release Recap, and Beyond
Tungsten Webinar: v6 & v7 Release Recap, and BeyondTungsten Webinar: v6 & v7 Release Recap, and Beyond
Tungsten Webinar: v6 & v7 Release Recap, and Beyond
Continuent
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Continuent
 
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesA26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesInsight Technology, Inc.
 
MySQL in the Cloud
MySQL in the CloudMySQL in the Cloud
MySQL in the Cloud
Colin Charles
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Continuent
 
MySQL in the Hosted Cloud
MySQL in the Hosted CloudMySQL in the Hosted Cloud
MySQL in the Hosted Cloud
Colin Charles
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
Alkin Tezuysal
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020
Alkin Tezuysal
 
SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件
YUCHENG HU
 
MariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started TutorialMariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started Tutorial
phamhphuc
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016
Colin Charles
 
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
NETWAYS
 
MariaDB 初学者指南
MariaDB 初学者指南MariaDB 初学者指南
MariaDB 初学者指南
YUCHENG HU
 

Similar to Meet MariaDB Server 10.1 London MySQL meetup December 2015 (20)

MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
 
Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
MariaDB 10 and what's new with the project
MariaDB 10 and what's new with the projectMariaDB 10 and what's new with the project
MariaDB 10 and what's new with the project
 
Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么
 
Tungsten Webinar: v6 & v7 Release Recap, and Beyond
Tungsten Webinar: v6 & v7 Release Recap, and BeyondTungsten Webinar: v6 & v7 Release Recap, and Beyond
Tungsten Webinar: v6 & v7 Release Recap, and Beyond
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControlWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #7: ClusterControl
 
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesA26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
 
MySQL in the Cloud
MySQL in the CloudMySQL in the Cloud
MySQL in the Cloud
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
 
MySQL in the Hosted Cloud
MySQL in the Hosted CloudMySQL in the Hosted Cloud
MySQL in the Hosted Cloud
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020
 
SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件SkySQL MariaDB 云数据组件
SkySQL MariaDB 云数据组件
 
MariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started TutorialMariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started Tutorial
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016
 
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
OSDC 2018 | Scaling & High Availability MySQL learnings from the past decade+...
 
MariaDB 初学者指南
MariaDB 初学者指南MariaDB 初学者指南
MariaDB 初学者指南
 

More from Colin Charles

What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
Colin Charles
 
Databases in the hosted cloud
Databases in the hosted cloud Databases in the hosted cloud
Databases in the hosted cloud
Colin Charles
 
Databases in the Hosted Cloud
Databases in the Hosted CloudDatabases in the Hosted Cloud
Databases in the Hosted Cloud
Colin Charles
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
 
Capacity planning for your data stores
Capacity planning for your data storesCapacity planning for your data stores
Capacity planning for your data stores
Colin Charles
 
Lessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesLessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companies
Colin Charles
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
Colin Charles
 

More from Colin Charles (7)

What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
 
Databases in the hosted cloud
Databases in the hosted cloud Databases in the hosted cloud
Databases in the hosted cloud
 
Databases in the Hosted Cloud
Databases in the Hosted CloudDatabases in the Hosted Cloud
Databases in the Hosted Cloud
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
 
Capacity planning for your data stores
Capacity planning for your data storesCapacity planning for your data stores
Capacity planning for your data stores
 
Lessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesLessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companies
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
 

Recently uploaded

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 

Recently uploaded (20)

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 

Meet MariaDB Server 10.1 London MySQL meetup December 2015

  • 1. Meet MariaDB 10.1 Colin Charles, Team MariaDB, MariaDB Corporation colin@mariadb.com | byte@bytebot.net http://bytebot.net/blog/ | @bytebot on Twitter
  • 2. whoami • Work on MariaDB at MariaDB Corporation (SkySQL Ab) • Merged with Monty Program Ab, makers of MariaDB • Formerly MySQL AB (exit: Sun Microsystems) • Past lives include Fedora Project (FESCO), OpenOffice.org • MySQL Community Contributor of theYear Award winner 2014 2
  • 3. What is MariaDB Server? • GPLv2 branch of MySQL with a lot of added community development • Feature enhanced • Aims: Application compatibility & feature completeness with MySQL • For all intents and purposes, a drop-in replacement
  • 4. Why MariaDB? • MySQL has a single owner; MariaDB is backed by the MariaDB Foundation and MariaDB Corporation • MySQL ecosystem development is at its most vibrant now than it has ever been • Community can get features inside a shipping server with ease • Storage engine vendors get shipping & wide distribution including testing
  • 5. MariaDB, the ecosystem • Besides the Server, we do develop LGPL Connectors • Focus on making “enterprise” features opensource • threadpool is a great example of working in the open • Open content (& friendly licensed) Knowledge Base
  • 6. MariaDB thru the years • MariaDB 5.1 • MariaDB 5.2 • MariaDB 5.3 • MariaDB 5.5 • MariaDB 10.0 • MariaDB 10.1 • MariaDB Galera Cluster 5.5 • MariaDB Galera Cluster 10.0 • C Connector • Java Connector • ODBC Connector
  • 7. Where is MariaDB found? • http://mariadb.org/ • Your Linux/BSD distribution - it is the default in RHEL 7, SUSE Enterprise 12, openSUSE, CentOS, Fedora, OpenBSD, etc. • and a choice in Debian & Ubuntu • Pivotal.io CloudFoundry, RackSpace Cloud, Azure, etc.
  • 8. MariaDB on AWS RDS! 8
  • 9. The “community release” • 30 Jun 2014 - MariaDB 10.1.0 • 17 Oct 2014 - MariaDB 10.1.1 • 7 Dec 2014 - MariaDB 10.1.2 • 2 March 2015 - MariaDB 10.1.3 • 13 April 2015 - MariaDB 10.1.4 • 4 June 2015 - MariaDB 10.1.5 • 27 July 2015 - MariaDB 10.1.6 • 9 September 2015 - MariaDB 10.1.7 RC • 17 October 2015 - MariaDB 10.1.8 GA • 23 November 2015 - MariaDB 10.1.9
  • 10. Themes • Security • High Availability • High Performance • Operational Ease • Better for developers and DBAs
  • 12. Encryption • Encryption: tablespace and table level encryption with support for rolling keys using the AES algorithm • table encryption — PAGE_ENCRYPTION=1 • tablespace encryption — encrypts everything including log files • New file_key_management_filename, file_key_management_filekey, file_key_management_encryption_algorithm • Well documented — https://mariadb.com/kb/en/mariadb/data-at- rest-encryption/
  • 13. Encryption II • The key file contains encryption keys identifiers (32-bit numbers) and hex-encoded encryption keys (128-256 bit keys), separated by a semicolon. • don’t forget to create keys! • eg. openssl enc -aes-256-cbc -md sha1 -k secret -in keys.txt -out keys.enc
  • 14. my.cnf config [mysqld] plugin-load-add=file_key_management.so file-key-management file-key-management-filename = /home/mdb/keys.enc innodb-encrypt-tables innodb-encrypt-log innodb-encryption-threads=4 aria-encrypt-tables=1 # PAGE row format encrypt-tmp-disk-tables=1 # this is for Aria
  • 15. Encryption III CREATE TABLE customer ( customer_id bigint not null primary key, customer_name varchar(80), customer_creditcard varchar(20)) ENGINE=InnoDB page_encryption=1 page_encryption_key=1;
  • 16. Encryption IV • Tablespace encryption (Google) • again, you need to pick an encryption algorithm • specify what to encrypt: innodb-encrypt-tables, aria, aria-encrypt-tables, encrypt-tmp- disk-tables, innodb-encrypt-log • don’t forget key rotation: • innodb-encryption-threads=4 • innodb-encryption-rotate-key-age=1800
  • 17. Encryption V • we also have tablespace scrubbing • background process that regularly scans through the tables and upgrades the encryption keys • scrubbing works for tablespaces and logs • —encrypt-tmp-files • —encrypt-binlog
  • 18. Encryption VI • /etc/my.cnf.d/enable_encryption.preset • Consider using Eperi Gateway for Databases • MariaDB Enterprise will have a plugin for Amazon Key Management Server (KMS) • mysqlbinlog has no way to read (i.e. decrypt) an encrypted binlog • This does not work with MariaDB Galera Cluster yet (gcache is not encrypted yet), and also xtrabackup needs additional work (i.e. if you encrypt the redo log)
  • 19. Passwords • Password validation plugin • https://mariadb.com/kb/en/mariadb/development/mariadb- internals-documentation/password-validation/ • simple_password_check password validation plugin • can enforce a minimum password length and guarantee that a password contains at least a specified number of uppercase and lowercase letters, digits, and punctuation characters. • cracklib_password_check password validation plugin • Allows passwords that are strong enough to pass CrackLib test. This is the same test that pam_cracklib.so does
  • 20. SQL Error Logging Plugin • Log errors sent to clients in a log file that can be analysed later. Log file can be rotated (recommended) • a MYSQL_AUDIT_PLUGIN install plugin SQL_ERROR_LOG soname 'sql_errlog.so';
  • 21. Audit Plugin • Log server activity - who connects to the server, what queries run, what tables touched - rotating log file or syslogd • MariaDB has extended the audit API, so user filtering is possible • a MYSQL_AUDIT_PLUGIN INSTALL PLUGIN server_audit SONAME ‘server_audit.so’;
  • 22. Authentication Plugins • PAM plugin (so it works against LDAP, SSH passphrases, etc.) • Kerberos plugin (GSSAPI on Linux, and includes Windows-based SSPI authentication support) • Beware: client libraries need to be compiled against the new libmysqlclient (er, libmariadbclient)
  • 23. WebScaleSQL • WebScaleSQL improvements • https://mariadb.atlassian.net/browse/ MDEV-6039 • Lots of running thru AddressSanitizer (ASan) • Many of these also get backported to 10.0.13
  • 24. Installation • Using your Linux distribution… mostly gets you MariaDB when you ask for mysql-server • Except on Debian/Ubuntu • However, when you get mariadb-server, you get an authentication plugin — auth_socket for “automatic logins” • You are asked by debhelper to enter a password • You can use the APT/YUM repositories from Oracle MySQL, Percona or MariaDB • Don’t disable SELinux: system_u:system_r:mysqld_t:s0
  • 25. Enable log-warnings • Enable —log_warnings=2 • Can keep track of access denied messages • Worth noting there are differences here in MySQL & MariaDB • https://dev.mysql.com/doc/refman/5.6/en/server- options.html#option_mysqld_log-warnings • https://mariadb.com/kb/en/mariadb/server-system- variables/#log_warnings
  • 26. Roles • Bundles users together, with similar privileges - follows the SQL standard CREATE ROLE audit_bean_counters; GRANT SELECT ON accounts.* to audit_bean_counters; GRANT audit_bean_counters to ceo;
  • 27. Compile-time options • Security hardening by default via gcc • -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector -- param=ssp-buffer-size=4 - D_FORTIFY_SOURCE=2 • Fixed a numerous amount of CVEs • https://mariadb.com/kb/en/mariadb/what-is- mariadb-101/#security-vulnerabilities-fixed-in- mariadb-101
  • 28. Preventing SQL Injections • MySQL Enterprise Firewall ($$$) • http://mysqlserverteam.com/new-mysql-enterprise- firewall-prevent-sql-injection-attacks/ • MaxScale Database Firewall filter (write your own regex) • https://mariadb.com/kb/en/mariadb-enterprise/ maxscale/maxscale-database-firewall-filter/ • https://mariadb.com/blog/maxscale-firewall-filter
  • 29. What’s missing from 5.7 • mysql_config_editor - store authentication credentials in an encrypted login path file named .mylogin.cnf • Random ‘root’ password on install • mysql_install_db —random-passwords stored in $HOME/.mysql_secret
  • 30. MySQL 5.7 • Improved password expiry — automatic password expiration available, so set default_password_lifetime in my.cnf • You can also require password to be changed every n- days • ALTER USER ‘foo'@'localhost' PASSWORD EXPIRE INTERVAL n DAY; • There is also account locking/unlocking now • ACCOUNT LOCK/ACCOUNT UNLOCK
  • 31. SSL • You’re using the cloud and you’re using replication… you don’t want this in cleartext • Setup SSL (note: yaSSL vs OpenSSL can cause issues) • https://dev.mysql.com/doc/refman/5.6/en/ssl- connections.html • Worth noting 5.7 has a new tool: mysql_ssl_rsa_setup
  • 32. sha256_password • Default in 5.6, needs SSL-built MySQL (if using it, best to set it in my.cnf) • default-authentication-plugin=sha256_password • Default SSL is yaSSL, but with OpenSSL you get RSA encryption • client can transmit passwords to RSA server during connection • There exists key paths for private/public keys • Passwords never exposed as cleartext when connecting
  • 33. 5.7 mysql_no_login • mysql_no_login - prevents all client connections to an account that uses it • https://dev.mysql.com/doc/refman/5.7/en/mysql- no-login-plugin.html
  • 35. MariaDB 10 replication: provisioning a new slave SET GLOBAL GTID_SLAVE_POS = BINLOG_GTID_POS("masterbin.00045", 600); CHANGE MASTER TO master_host="192.168.2.4", master_use_gtid=slave_pos; START SLAVE;
  • 36. Replication: turning on GTID for slaves STOP SLAVE; CHANGE MASTER TO master_use_gtid=current_pos; START SLAVE;
  • 37. Replication: change masters STOP SLAVE; CHANGE MASTER TO master_host="10.2.3.5"; START SLAVE;
  • 38. Why different GTID compared to 5.6? • MySQL 5.6 GTID does not support multi-source replication • Supports —log-slave-updates=0 for (space) efficiency • 5.7 has this fixed • Enabled by default, with self-healing capabilities
  • 39. Binlog (size matters!) • Example query: INSERT INTO t1 VALUES (10, “foo”); • MySQL 5.6… 265 bytes • MariaDB 10.0… 161 bytes
  • 40. Multi-source replication • Work from Taobao • Many users partition data across many masters... now you can replicate many masters to a single slave • Great for analytical queries, complete backups, etc. • @@default_master_connection contains current connection name (used if connection name is not given) • All master/slave commands take a connection name now (like CHANGE MASTER “connection_name”, SHOW SLAVE “connection_name” STATUS, etc.) • https://kb.askmonty.org/en/multi-source-replication/
  • 41. Galera Cluster integrated • Full integration of Galera Cluster into MariaDB 10.1 • no lost transactions, optimisations for WAN replication, non-blocking DDL, no limits on transaction size • Server version: 10.1.3-MariaDB-wsrep MariaDB Server, wsrep_25.10.r4144 • Granular monitoring in INFORMATION_SCHEMA — WSREP_MEMBERSHIP, WSREP_STATUS
  • 42. Optimistic parallel replication • Before, transactions committed in parallel on the master could be run in parallel • Now, more than one transaction will be considered to be run in parallel giving another performance boost in master-to-slave replication • Need a 10.1 master to work • https://mariadb.atlassian.net/browse/MDEV-6676
  • 43. Replication: START TRANSACTION WITH CONSISTENT SNAPSHOT • Works with the binlog, possible to obtain the binlog position corresponding to a transactional snapshot of the database without blocking any other queries. • by-product of group commit in the binlog to view commit ordering • Used by the command mysqldump--single-transaction -- master-data to do a fully non-blocking backup which can be used to provision a new slave • Works consistently between transactions involving more than one storage engine • https://kb.askmonty.org/en/enhancements-for-start-transaction-with- consistent/
  • 44. More in replication • Enhanced semi-sync replication (like in 5.7 - thanks FB/Google) • domain_id based replication filters • Slaves can execute triggers now (in RBR) • Dump thread enhancements (remove binlog lock LOCK_log) from 5.7 included (Google)
  • 46. An opensource threadpool • Modified from 5.1 (libevent based), great for CPU bound loads and short running queries • No minimization of concurrent transactions with dynamic pool size • thread_handling=pool-of-threads • https://mariadb.com/kb/en/mariadb/thread-pool-in-mariadb/ • now you can also have a priority mode for tickets
  • 48. InnoDB improvements • Multi-threaded flush (also in 5.7, different implementation + we’re first) • 64KB pages in InnoDB (old limit = 16KB). • Defragementation (FB, backported by DaumKakao) • I_S.INNODB_SEMAPHORE_WAITS, I_S.INNODB_MUTEXES • Forced primary key • If option is true, create table without primary key or unique key where all keyparts are NOT NULL is not accepted. Instead an error message is printed.
  • 49. InnoDB WebScaleSQL • MDEV-6936: Buffer pool list scan optimisation • MDEV-6929: Port Facebook Prefix Index Queries Optimization • MDEV-6932: Enable Lazy Flushing • MDEV-6931: Page cleaner should do LRU flushing regardless of server activity • fixes mysql#71988, mysql#70500 •  DB-746 merge clustering key is covering key for mariadb 10 (TokuDB) • MDEV-6933: Spurious lock_wait_timeout_thread wakeup in lock_wait_suspend_thread() • fixes mysql#72123
  • 50. Scalability improvements • Removing locks using lock free data structures • in MDL (metadata locking) • in TDC (table defined cache) • in XA (XID hash)
  • 53. Per query variables • Long history (http://www.bytebot.net/blog/ archives/2014/05/04/per-query-variable-settings- in-mysqlpercona-serverwebscalesql) • SET STATEMENT max_statement_time=1000 FOR SELECT name FROM name ORDER BY name;
  • 54. Statement timeouts • MAX_STATEMENT_TIME to abort long running queries • We call it “query timeouts” + have a compatible syntax • https://mariadb.atlassian.net/browse/MDEV-4427
  • 55. New KILL syntax • HARD | SOFT & USER USERNAME are MariaDB-specific (5.3.2) • KILL QUERY ID query_id (10.0.5) - kill by query id, rather than thread id • SOFT ensures things that may leave a table in an inconsistent state aren’t interrupted (like REPAIR or INDEX creation for MyISAM or Aria) KILL [HARD | SOFT] [CONNECTION | QUERY] [thread_id | USER user_name]
  • 56. Progress reporting • ALTER TABLE & 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)
  • 58. Optimiser enhancements • UNION ALL without temporary tables (5.7) • Improve ORDER BY … LIMIT in optimiser • ANALYZE <statement> • Mostly there is EXPLAIN JSON (like 5.6)* • EXPLAIN ANALYZE with FORMAT=JSON • includes data from the query execution itself — this is MariaDB only • https://mariadb.com/kb/en/mariadb/analyze-formatjson- examples/
  • 59. Virtual columns • A column in a table that has its value automatically calculated either with a pre-calculated/ deterministic expression or values of other fields in the table • PERSISTENT (computed when data is inserted or stored in a table) or VIRTUAL (like a VIEW) • Similar to MS SQL or Oracle • https://kb.askmonty.org/en/virtual-columns/
  • 60. CONNECT • CONNECT having full JSON/BSON support • Can read/write filename.json files with ease • Writing — INSERT, UPDATE, DELETE is supported • Naturally the other good use? ODBC connections to other databases
  • 61. Other bits • CREATE or REPLACE for most database objects minus indexes • SET DEFAULT ROLE (there is a default role now for current user) • FRM files are now not created for temporary tables • INFORMATION_SCHEMA.SYSTEM_VARIABLES - information for system variables • Microseconds in GET_LOCK()
  • 62. Other bits • @@sql_log_slow can now be controlled on a session basis (not just globally) • Sequence engine enabled by default • default_tmp_storage_engine option • ALGORITHM column in I_S.VIEWS
  • 63. GIS • Full compliance for the OGC standards around GIS. • MDEV-4045 Missing OGC Spatial functions • ST_Boundary, ST_ConvexHull, ST_IsRing, ST_PointOnSurface, ST_Relate • MDEV-60 Support for Spatial Reference systems for the GIS data. MDEV-12 OpenGIS: create required tables: GeometryColumns, related views. • I_S tables: GEOMETRY_COLUMN SPATIAL_REF_SYS • REF_SYSTEM_ID per GEOMETRY column
  • 64. Compatibility • Temporary tables are stored in Aria but now there is a — default-tmp-storage-engine option • engine_condition_pushdown flag removed (its always on for engines that support it) • --mysql56-temporal-format option to use the MySQL-5.6 low level formats to store TIME, DATETIME and TIMESTAMP types • PERFORMANCE_SCHEMA disabled by default like in 10.0 • also, no .frm files created (faster startup)
  • 65. “Community Release” Thanks! • Google - encryption, scrubbing, enhanced semisync, dump thread, thd_specifics plugin service • Eperi - encryption • DaumKakao - defragmentation, online alter progress monitoring • Antony Curtis - compound statements • Sriram Patil (GSoC) - CREATE or REPLACE/IF NOT EXISTS • Daniel Black - finer grained status variables for replication monitoring • FusionIO - atomic writes, page compression, TRIM, multi- threaded flushing • Facebook — defragmentation, prefix index queries optimization, lazy flushing, buffer pool list scan optimization, configurable long, semaphore wait timeout • Percona - SET STATEMENT, enforce_storage_engine
  • 66. Welcoming 5.7 features MariaDB had • Multi-source replication • Dynamic replication filters • SHOW EXPLAIN for connection_id • GIS functionality • Statement timeouts • Change master without stopping SQL thread • Online GTID implementation • GTID no longer requires log-slave-updates to be enabled • Virtual columns (generated columns) • SHUTDOWN command • FusionIO functionality
  • 67. MariaDB still rocks! • START TRANSACTION WITH CONSISTENT SNAPSHOT • Integrated Galera Cluster • Table/tablespace encryption • Optimistic parallel replication • Enhanced semi-sync replication • InnoDB defragmentation • ANALYZE <statement> • Threadpool • cracklib_password_check • SQL error logging plugin • Extended REGEXP • Roles
  • 68. Participate! • Contribute code - github.com/mariadb/server • Write KB articles - http://mariadb.com/kb/ • Report bugs: http://mariadb.org/jira • Join us on #maria at irc.freenode.net • Enable the feedback plugin ([enable-feedback] in my.cnf) • Mailing lists: maria-discuss, maria-developers • Tweet us @mariadb, Like us on FB, + on GPlus
  • 69. Books! 1. MariaDB Crash Course, Ben Forta (September 2011) 2. Getting Started with MariaDB, Daniel Bartholomew (October 2013) 3. MariaDB Cookbook, Daniel Bartholomew (March 2014) 4. Real MariaDB, Matt Lee (April 2014) 5. Building a Web Application with PHP & MariaDB: A Reference Guide, Sai Srinivas Sriparasa (June 2014) 6. MariaDB: Beginners Guide, Rodrigo Ribeiro (August 2014) 7. Mastering MariaDB, Federico Razzioli (September 2014) 8. MariaDB High Performance, Pierre Mavro (September 2014) 9. Learning MySQL & MariaDB, Russell Dyer (April 2015)
  • 70. In conclusion • MariaDB is GPLv2 licensed, freedom guaranteed • Its feature complete with MySQL + loaded with extras • Enterprise features made open is great for users • Its distributed everywhere
  • 71. A word from your sponsors • MariaDB Corporation sponsored my T&E to come to the meetup • Remember you can buy a MariaDB Enterprise subscription to help you with your cloud deployments, MariaDB Server usage, etc. • Services include: 24x7 support, consulting, training, remote DBA services, non-recurring engineering and more for all variants of MySQL
  • 72. Thank you! Colin Charles colin@mariadb.com / byte@bytebot.net http://bytebot.net/blog | @bytebot on twitter slides: slideshare.net/bytebot