MySQL in the cloud, as a service
|Project:||MySQL, Percona Server, MariaDB, Drizzle|
There is no one magic solution to having MySQL As A Service work well, it's a lot of small moving parts and options that need to be set, monitored and configured. We may wish it was different, or look at other database technologies, but there is a lot of legacy code that talks to MySQL, with all it's idiosyncrasies - and we need to be able to support this code.
In this talk, we'll cover many of the problem areas and what you can do to avoid them. We'll cover stock Oracle MySQL, Percona Server and MariaDB. Where suited, Drizzle will also be discussed.
A key focus area will be how to run MySQL As A Service. This makes sense even in smaller organisations, providing database services to various apps, not just in big cloud providers.
Some areas we'll examine:
IOPS are eaten by database sytems for breakfast, MySQL is no exception. We'll look at a crash safe server with replication, how many fsync()s a single transaction causes (hint: greater than 1) and how that number can be reduced.
MySQL traditionally handles ENOSPC very, very poorly. We'll look at new features we've implemented to help avoid ENOSPC. This includes replication logs, UNDO logs and temporary files.
- Flexibility in users/admin
We'll also cover ways to provide users with the root MySQL user while not giving them access to the underlying Virtual Machine - enabling a more standardized Database As A Service platform yet giving users a lot of flexibility in how they use their database.
- Backup/restore/spawning slaves
Backup and restore is also integral to a good database server, so we'll examine backup options that work for streaming directly into cloud storage rather than local disk.
Stewart Smith joined Percona in 2011 as Director of Server Development with a deep background in database internals including MySQL, MySQL Cluster, Drizzle, InnoDB and HailDB.
Prior to joining Percona, Stewart worked at Rackspace on the Drizzle database server focusing on getting it through a critical milestone of a stable Generally Available (GA) release. Prior to Rackspace, he worked on Drizzle as a member of the CTO Labs group inside Sun Microsystems.
As one of the founding core developers of the Drizzle database server Stewart has deep expertise in the code base. He had direct involvement in significant refactoring of the database server including removing the FRM, the InnoDB storage engine, xtrabackup, the storage engine API, CATALOG support and countless bug fixes. He also maintains HailDB, a shared library offering a NoSQL C API directly to InnoDB.
At Sun Microsystems, and MySQL before that, Stewart was a Senior Software Engineer in the MySQL Cluster team working on core code and features inside the MySQL Server and the Cluster codebase working on projects such as: geographical asynchronous replication, online add node, online backup, NDBINFO for improved monitoring and the Win32 port.