Percona Live London 2011 Sessions

Percona Live features leading experts in MySQL discussing real-world usage scenarios and application architectures.

Clustrix Fusion-io Adfonic Continuent Facebook GenieDB Schooner Information Technology Severalnines SkySQL Scalebase Couchbase FromDual Monty Program Sphinx Tokutek Devart Ivinco Virident Webyog Drizzle Apress New York PHP O'Reilly PalominoDB Stackware

Opening Keynote [slides]

8:45AM • Fleet Suite • Peter Zaitsev (Percona)

Opening Keynote: Discover the Power of MySQL

Opening Keynote: Characterizing Performance [slides]

9:30AM • Fleet Suite • Paul Mikesell (Clustrix)Aaron Passey (Clustrix)

Properly characterizing performance is tricky in the best of circumstances. What are the right tests to run? How do you find the limits? How do you interpret the results? Clustrix has partnered with Percona to characterize the performance of the Clustrix and MySQL products. In the process, Percona was able to compare several different SSD based technologies for comparison running both Clustrix and Percona Server With XtraDB. Percona was able to test different workloads at different concurrencies on a variety of different platforms to create a landscape of the available high-performance options in the MySQL environment. We will try to make sense of the tests and the results.

Data Recovery for MySQL [slides]

10:15 AM • Fleet Suite • Aleksandr Kuzminsky (Percona)Istvan Podor (Percona)

Tutorial on how to restore your data after physical of logical failure, using practical examples to demonstrate how to tackle this challenging problem.

HandlerSocket [slides]

10:15 AM • Walbrook Suite • Ryan Lowe (Percona)

The much-anticipated ability to access MySQL data via a NoSQL solution has been realized. Using HandlerSocket, significant performance gains can be realized for certain workloads. We'll walk through relevant configuration & tuning options, and at the end of the presentation attendees will be able to identify candidate use cases within their application to use HandlerSocket.

Building 50TB-scale search engine with MySQL and Sphinx [slides]

10:15 AM • Ludgate Suite • Mindaugas Zukas (Ivinco Ltd.)

This talk shares the experience of using MySQL and Sphinx to build a search engine (based on actual project which is one of the largest known Sphinx installations). You will learn about the architecture of a stable, high-performance, easy-to-scale system that has low maintenance costs. We'll discuss technical details starting from hardware and software configuration to maintenance, monitoring and high-availability solutions - how we ensure system is stable and what we do to to keep up with the data and usage growth.

Teaching an Old Dog New Tricks: Tungsten Enterprise Clusters for MySQL [slides]

10:15 AM • Bishopsgate Suite • Robert Hodges (Continuent) • Sponsored

Your assignment is to build a high-performance 24x7 application with data replicated to a disaster recovery site. But how? Tungsten Enterprise adds flexible replication, rule-based management, and advanced connectivity to make multiple MySQL servers look like a single highly available DBMS to your apps. You use your favorite MySQL build and you don't need to change application code. We will explain Tungsten Enterprise internals, show you typical use cases, and demonstrate cluster management as well as new advanced DR features like single-command site failover. Tungsten Enterprise processes hundreds of millions of transactions for mission-critical applications every day. Come see how we can do the same for you.

Trends in Data Warehouse Data Modeling: Data Vault and Anchor Modeling [slides]

10:15 AM • Newgate Suite • Roland Bouman

During this session, the key components of both Data Vault and Anchor modeling will be explained and contrasted to the more traditional Inmon and Kimball approach to data warehousing, and a demonstration will be given of the open source tools that help in designing and loading these data warehouses.

Design Patterns for Scalable LAMP Infrastructure [slides]

11:00 AM • Fleet Suite • Jon Topper (The Scale Factory)Mike Griffiths (The Scale Factory)

There's more to LAMP than just MySQL. We share our best practices and explain some common pitfalls to help you more effectively build the ecosystem around your database.

Deploy MySQL like a devops sysadmin [slides]

11:00 AM • Walbrook Suite • Frédéric Descamps (Percona)

This talk will show the best practices to deploy a large number of MySQL using devops tools like puppet, vagrant, mcollective.

Disk IO abstraction layer X-Rays [slides]

11:00 AM • Ludgate Suite • Aurimas Mikalauskas (Percona)

Is my storage system too slow for my application, or is the application not utilizing it properly? It may seem the answer is obvious: look at %util in iostat, right? But this is usually not the correct approach. To get it right, it is important to understand how I/O requests are handled, starting at the application and going down to the storage device. In this session, I will discuss the disk I/O path. This knowledge is essential for troubleshooting and optimize.

Maximizing MySQL Availability, Data Integrity, Performance, and Scalability [slides]

11:00 AM • Bishopsgate Suite • Dr. John Busch (Schooner) • Sponsored

First, we discuss the use of synchronous replication of InnoDB to eliminate data loss and to provide cluster-wide data consistency. We then discuss instant automatic fail-over providing five 9s to maximize service availability. Next we discuss the use of high parallelism and granular concurrency control with synchronous replication to fully exploit commodity servers and storage to maximize performance. Next we discuss extending base synchronous clusters with tightly-coupled, parallel asynchronous replication to achieve auto-failover and high consistency across geographically dispersed data centers.

Building High Performance Sites with nginx, mysql, varnish and php [slides]

11:00 AM • Newgate Suite • Tamas Kozak (Percona)

A full stack review of a working environment that can scale up to millions of pageviews / day keeping infrastructure cost at minimum. I would like to describe Varnish, smart caching options, how to make static sites look like dynamic ones. The problems solved by caching, and the problems introduced by caching and how to solve them.

MySQL Backup and Recovery: Tools and Techniques [slides]

11:45 PM • Fleet Suite • René Cannao (PalominoDB)

General backup best practices; Overview, analysis and comparison of various methods of backups; Overview on differences between storage engines, and how that affects the choice of backup; Recovery procedure depending from method(s)/tool(s) used for backup.

Choosing a MySQL Replication / High Availability Solution [slides]

11:45 PM • Walbrook Suite • Henrik Ingo (Nokia)

Like many things in MySQL, choosing a high-availability solution for MySQL has traditionally been an excercise in tradeoffs. There are many alternatives to choose from, many good enough but none perfect. In this session we'll look at all of these alternatives, in search of the ultimate MySQL high availability solution, without any tradeoffs. It is often said that clustering is complex and complexity is itself the enemy of high availability. We'll find in this talk that sometimes complexity can just be a symptom of a poor implementation and you need to look elsewhere for the right clustering solution.

B+Tree Indexes and InnoDB [slides]

11:45 PM • Ludgate Suite • Ovais Tariq (Percona)

Although a DBMS hides the internal mechanics of indexing. But to be able to create efficient indexes, you need to know how they work. This talk will help you understand the mechanics of the data structure used to store indexes and as to how it applies to InnoDB. At the end of the talk you will be able to learn how to use cost-analysis to pick and choose correct index definitions and will learn how to create indexes that will work efficiently with InnoDB.

Tuning For Speed - Percona Server and Fusion-io [slides]

11:45 PM • Bishopsgate Suite • Torben Mathiasen (Fusion-io) • Sponsored

This presentation will focus on the performance, reliability, and predictability when tuning Fusion's ioDrives in conjunction with Percona Server. From basic tuning, to Linux details, to MySQL specifics, we will cover everything you need to know to optimize your database configurations.

Coding a MySQL Access layer using Ruby & Sinatra [slides]

11:45 PM • Newgate Suite • Matthew Yonkovit (Percona)

Are you frustrated by evil ORM's and their bad habits? Maybe its time to explore building your own api access layer for your application. Using Sinatra to build and deploy api's is simple and effective. I will show you how to access your MySQL database and within minutes have access to your data in multiple formats like xml, csv, and json.

MySQL in the clouds [slides]

1:30 PM • Fleet Suite • Anders Karlsson (Recorded Future)

This talk is about the experiences of running a large MySQL database setup in a cloud environment. I will cover MySQL, and well as complenentary technologies such as MongoDB, Sphinx and Chef, and will also look into the future a bit. The context for the talk is the operations of Recorded Future, and this is descibed shortly. If you are thinking of running a MySQL setup in a cloud environment, this talk is for you.

Hybrid Applications Using MongoDB and MySQL

1:30 PM • Walbrook Suite • Brendan McAdams (10gen)

MongoDB and MySQL are both commonly used in web applications. It is often unclear with one should use one or the other, or if a combination is really ideal. During this talk, we will discuss the ideal use cases for each, and how they can be used in conjunction.

Performance Tuning of MySQL Cluster [slides]

1:30 PM • Ludgate Suite • Johan Andersson (Severalnines)

This talk guides you around the tips and tricks to tune your MySQL Cluster for high availability applications. It discusses how to best structure a database schema for a distributed database to achieve optimal performance. The goal is to enable developers to turn their SQL into faster, more efficient queries.

'To have your database cake and eat it, anywhere': Bridging SQL and NoSQL worlds.

1:30 PM • Bishopsgate Suite • Jack Kreindler (GenieDB) • Sponsored

Consistent data replication across very wide areas or independent data-centres is in high demand - driven by the availability and scaling needed to serve today's global user-base. It is hard, inefficient and costly to solve for SQL platforms and those hosting them. Jumping to eventually consistent NoSQL presents equally big adoption issues. In this talk we describe how a global consistency 'data-fabric' with a MySQL interface joins the query abilities of the world's most widely deployed RDBMS with the capabilities of new NoSQL datastores.

MySQL Parallel Replication in 5 Minutes or Less [slides]

1:30 PM • Newgate Suite • Robert Hodges (Continuent)

Working parallel replication for MySQL has arrived. This talk will show how to take a MySQL slave and enable Tungsten Replicator with parallel replication in 5 minutes from start to finish. Spend the remaining 40 minutes in the pub or stick around to hear how Tungsten parallel replication works, which applications benefit most from it, and the performance boost you can expect. Tungsten Replicator is GPL V2 and works on all MySQL versions from 5.0 onwards. You don't even have to upgrade. Join us and learn how to get parallel replication on *all* your MySQL servers today!

Galera Replication 1.0: Getting There [slides]

2:00 PM • Fleet Suite • Seppo Jaakola (Codership)Alexey Yurchenko (Codership)

Galera Replication is synchronous multi-master replication solution for MySQL/InnoDB, providing nice features. In this presentation we will show the state of Galera Replication project focusing in the very new features brought in with the latest 0.8 and 1.0 releases.

Preventing downtime in production MySQL servers [slides]

2:00 PM • Walbrook Suite • Espen Braekken (Percona)

Everyone wants to prevent database downtime by being proactive, but how effective are the common measures such as inspecting logs and analyzing SQL? To be truly proactive, one must prevent problems, which requires studying and understanding the reasons for downtime.

Pluggable Authentication in MySQL and MariaDB [slides]

2:00 PM • Ludgate Suite • Sergei Golubchik (MontyProgram Ab)

One of the newer and less known features in the MySQL and MariaDB Plugin API is the authentication plugin type. Still, it makes possible quickly and easily to extend the server to meet your security or usability requirements. One time passwords, single sign-on, roles, hardware tokens, password policies (such as expiration) - one can do it all now in MySQL and MariaDB by creating an appropriate plugin. This talk will explain how to do it. You will understand the logic of the authentication API and how to use this API to replace the native MySQL password-based authentication.

Benefits of sharding MySQL [slides]

2:00 PM • Bishopsgate Suite • Liran Zelkha (SCALEBASE) • Sponsored

Scaling MySQL is difficult, and Sharding is often mentioned as a solution to Scaling MySQL. In this seminar we will discuss what is Database Sharding, how to implement it and the benefits you can expect when implementing Sharding in MySQL.

Drizzle 7, GA and Supported: Current & Future Features [slides]

2:00 PM • Newgate Suite • Stewart Smith (Percona)

Stewart explains the architecture that has evolved to culminate in the Drizzle 7 GA release. He discusses the future architectural direction of the Drizzle database and how this will enable Drizzle to be used as an application infrastructure component, not just a database server.

A Global In-memory Data System for MySQL [slides]

2:30 PM • Fleet Suite • Daniel Austin (Paypal, Inc.)

Excitement around so-called 'NoSQL' data systems is reaching feverish levels of hype, but how much is just fashion and how much really matters? Do we really need all of this new technology or could we do this with say, MySQL? Here we describe a globally deployed in-memory data system based on MySQL's NDB engine. Compared head to head, this system will match the performance of several popular NoSQL systems without sacrificing consistency or SQL support. We'll talk about what NoSQL is really good for and who really needs it - and why.

MySQL Partitioning: The Spider Solution [slides]

2:30 PM • Walbrook Suite • Frédéric Descamps (Percona)

This talk is about partitioning... but not only on disk but also on different mysql server using Spider engine. During the talk Frédéric will show an architecture using spider and also show some numbers to explain what can be expected of such setup.

MySQL Replication outside the box : multiple masters, fan-in, parallel apply

2:30 PM • Ludgate Suite • Giuseppe Maxia (Continuent)

MySQL replication is the backbone of the web economy. Yet, the native MySQL replication has limits, mainly, lack of support for multiple masters, replication from many sources to the same slave, transaction IDs, parallel apply. Using a third party open source tool, you can achieve all the above. This tutorial introduces Tungsten Replicator 2.0, and guides the audience through its installation and administration.

The SkySQL Reference Architecture in Action [slides]

2:30 PM • Bishopsgate Suite • Ivan Zoratti (SkySQL) • Sponsored

It has been six months since SkySQL announced announce its Reference Architecture - the most complete set of tools and technologies available for MySQL and the MySQL ecosystem. During this session, Ivan Zoratti will show you how how the Reference Architecture can naturally improve an Enterprise-ready solution buy controlling the environment, adding features, boosting performance and adding high availability.

MHA: Introducing automated MySQL Master Failover solution

2:30 PM • Newgate Suite • Yoshinori Matsunobu (DeNA)

In this talk Yoshinori will introduce a newly announced MySQL master failover tool: MHA ( By using MHA, when master is down, one of the new slaves will automatically become new master, and other slaves will automatically replicate from the new master. Consistency issues (in case of the master crash, relay log states on slaves might be different each other) will automatically be fixed, and you can install MHA on existing MySQL replication environments without stopping MySQL. He'll explain the details of MHA, and how to use and how we use MHA on our environments.

Why MariaDB? [slides]

3:30 PM • Fleet Suite • Colin Charles (Monty Program Ab)

MariaDB started life as a database to host the Maria (now renamed Aria) storage engine in 2009. Not long after its inception, the MySQL community went through yet another change in ownership, and it was deemed that MariaDB will be a complete database branch developed to extend MySQ, but with constant merging of upstream changes

Measuring Scalability and Performance With TCP [slides]

3:30 PM • Walbrook Suite • Baron Schwartz (Percona)

What if you had all the data you needed to measure system performance and scalability at any tier, discover performance and stability problems before they happen, and plan for capacity by modeling the system's behavior at greater load than you currently have? Now it is as easy as running tcpdump and processing the result with a tool. In this talk you will learn a quick overview of mathematical scaling models, how the inputs can be derived from observing query start and completion times, and how the mk-tcp-model tool from Maatkit can transform tcpdump output into the inputs you will need for tools such as Aspersa's usl tool for applying the Universal Scalability Model.

Various MySQL High Availability Solutions [slides]

3:30 PM • Ludgate Suite • Oli Sennhauser (FromDual GmbH)

In an Open Source Ecosystem like MySQL, there are many different approaches and solutions how problems can be solved. This is especially true for High Availability (HA). In this talk we will get a short overview over the different HA Architectures, where you can use them and where are their strengths and weaknesses. We look into MySQL Replication (Master/Slave and Master/Master), active/passive Fail-over Clustering, MySQL Cluster, Galera and Tungsten Replicator.

MySQL Cluster on stereoids - New Features in 7.2 [slides]

3:30 PM • Bishopsgate Suite • Johan Andersson (Severalnines) • Sponsored

MySQL Cluster is already proven as a write-scalable, real-time transactional database with inbuilt high availability. Based on a shared-nothing architecture, the database scales horizontally on commodity hardware to serve read and write intensive workloads. However, MySQL's JOIN algorithms have traditionally not been suited to the distributed nature of data in MySQL Cluster, and SQL join performance has been a weak spot for MySQL Cluster.

How I Learned to Stop Worrying and Love Big Data [slides]

3:30 PM • Newgate Suite • Matthew Yonkovit (Percona)

Working for a client whose project is to collect minute-by-minute data from thousands and thousands of devices around the world is challenging enough. Add in legacy issues, different formats, new devices, ever increasing demands for data retention and its enough to drive one crazy. How can you build a database schema and an application that can remain flexible and allow for ever increasing project scope? Some say it can not be done! Matthew says it can.

Diagnosing and Fixing MySQL Replication [slides]

4:00 PM • Fleet Suite • Devananda van der Veen (Percona)

Replication is one of MySQL's most widely-used features, and despite significant improvements over the years, it still fails occasionally. When this happens, it can be due to any number of factors, either internal or external to your MySQL database. For those who do not have a thorough understanding of the MySQL binary log format or the slave's two-phase replication architecture, safely restoring replication while maintaining data integrity can be a daunting task. This talk will show you how to interpret SHOW SLAVE STATUS, how to read MySQL's binary logs, and how to recover a replication slave from many types of real-world failures.

Increase Performance of MySQL Queries with Sphinx

4:00 PM • Walbrook Suite • Rich Kelm (Sphinx Search)

Many people understand that Sphinx provides fast and scalable full-text search, but one can also offload non-fulltext queries from the database server by handing these to Sphinx.

Programmatic Queries: things you can code with SQL [slides]

4:00 PM • Ludgate Suite • Shlomi Noach (

SQL is not as declarative language as sometimes implied. There are programmatic aspects even to standard queries. This is even more true in MySQL, where one can expect a certain behavior on query execution. In this session we will observe some of this behavior and how to use it to create queries of programmatic nature. We will see how to take advantage of row evaluation order, control flow behavior, table & query inference order, and time evaluation and suspension.

Real-time reporting at 10,000 inserts per second [slides]

4:00 PM • Bishopsgate Suite • Wes Biggs (Adfonic) • Sponsored

When Adfonic launched a global self-service platform for mobile advertisers, publishers and app developers in 2009, real-time reporting and analytics was a key ingredient of our initial success. Little did we know that within a couple of years, we'd be handling more than 15 billion ad requests a month, meaning in excess of 10,000 inserts per second during peak load. This session will focus on the tools used, including MySQL Cluster, the open source Mondrian ROLAP business intelligence tool, and a series of homegrown innovations that keep data flowing with near instant availability to our customers. Along the way, we'll discuss limitations of current technologies and where the quest for tenfold growth might take us.

Keep your MySQL backend online no matter what

4:00 PM • Newgate Suite • Istvan Podor (Percona)

Istvan helped architect and build a system to get 4 nines (99.99) availability for the mysql backend behind a website. It used mysql replication to set up a multi-master environment, MMM to manage it and LVS for mysql backend loadbalancing. This architecture not only provided high availability, but also permitted us to change the schema, upgrade MySQL versions, or even replace hardware without any downtime. This presentation explains how this solution worked.

Practical MySQL indexing guidelines [slides]

4:30 PM • Fleet Suite • Stéphane Combaudon (Dailymotion)

In many production systems, indexes are designed empirically and without instrumentation to check their efficiency, resulting in poor performance and increased hardware needs. Learn in this talk the fundamental ideas behind indexing, the errors you should avoid and the tools that can help you harness the full power of indexes.

Fixed in Drizzle: No more GOTCHA's [slides]

4:30 PM • Walbrook Suite • Henrik Ingo (Nokia)

MySQL Sandbox: a framework for productive laziness

4:30 PM • Ludgate Suite • Giuseppe Maxia (Continuent)

MySQL Sandbox is a tool that installs one or more MySQL servers within seconds, easily, securely, and with full control. Once installed, the sandbox is easily used and maintained, without using complex options. Replicated and multiple sandboxes can be used individually or all at once. Recent versions of MySQL Sandbox support MySQL builds as well as Percona Server and MariaDB

Detecting MySQL IO problems on Linux at different abstraction layers [slides]

4:30 PM • Bishopsgate Suite • Nickolay Ihalainen (Percona)

MySQL running in the LAMP stack is a complex system, luckily there is a lot of good instrumentation for investigation into the three fundamental performance problems: high CPU load, disk bandwidth problems and internal locks contention.This presentation will discuss how to detect MySQL IO problems on Linux on different abstraction layers

The No-Marketing-BS Introduction to Couchbase, Your Favorite NoSQL Database [slides]

4:30 PM • Newgate Suite • Jan Lehnardt (Couchbase)

Couchbase is a love child of memcached and Apache CouchDB. This talk introduces the Couchbase architecture, features and demonstrates integration challenges as well as our solutions. Couchbase is an Apache 2.0 licensed open source project based on the existing memcached, Membase and CouchDB technologies that aims to solve your data storage problems in a flexible, fast and reliable manner. In this talk, you will learn how it all works under the hood.

Closing Keynote: Scaling MySQL at Facebook

5:00 PM • Fleet Suite • Domas Mituzas (Facebook)

Domas will talk about practices that allow Facebook serve the massive user base from a high scale cost conscious MySQL deployment. Facebook MySQL teams actively work on improving database internals, application efficiency and hardware capabilities, and lots of that work and knowledge is shared with opensource database community.

Domas is a member of the Facebook database performance team. He has spent four years as Support Engineer at MySQL and Sun Microsystems and has worked on Wikipedia infrastructure for seven years.

]]> ]]>