2. Investment in MySQL
Rapid Innovation
Make MySQL a Better MySQL
• #1 Open Source Database for Web Applications
• Most Complete LAMP Stack
• Telecom & Embedded
Develop, Promote and Support MySQL
• Improve engineering, consulting and support
• Leverage 24x7, World-Class Oracle Support
MySQL Community Edition
• Source and binary releases
• GPL license
3. Announced Today
MySQL 5.5 is now GA!
Making MySQL Better Today and Everyday
4. MySQL 5.5 – What’s New
Better Performance, Scalability and Recovery GA
InnoDB Performance improvements
• Multiple Buffer Pool Instances
• Multiple Rollback Segments – now supports 128K concurrent trxs
• Extended Change Buffering (with delete buffering, purge buffering)
• Improved Purge Scheduling
• Improved Log Sys mutex, Separate Flush List mutex
• Improved Recovery Times
• More…
MySQL Performance Improvements
• Better Metadata Locking within Transactions
• Split LOCK_open mutex
• Eliminated LOCK_alarm mutex as bottleneck
• Eliminated LOCK_thread_count as bottleneck
• Improved Performance/Scale on Win32, 64
• More…
5. MySQL 5.5 – What’s New
InnoDB becomes default storage engine
GA
• ACID Transactions, FKs, Crash Recovery
Improved Availability
• Semi-synchronous Replication
• Replication Heartbeat
• Replication Slave fsync options
• Automatic Relay Log Recovery
Improved Usability
• SIGNAL/RESIGNAL
• More Partitioning Options
• Replication Server Filtering
• Replication Slave Side Type Conversions
• Individual Log Flushing
Better Instrumentation/Diagnostics
• New PERFORMANCE_SCHEMA
6. MySQL 5.5 Early Adopters Speak!
“Thanks to the MySQL and InnoDB teams for their continued
hard work and dedication to making MySQL faster as
hardware evolves. I, for one, cannot wait to see what this
stuff does for us. “
– Jeremy Zawodny, Craigslist
“I’m really blown away by MySQL 5.5’s improvements. “
- Don MacAskill, SmugMug
“My expectations for 5.5 were not high. I am pleasantly
surprised!”
- Mark Callaghan, Facebook, MySQL UC Keynote
7. MySQL 5.5 SysBench Benchmarks
Linux GA
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
200% performance gain Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
for MySQL 5.5 over 5.1.50; at scale Fedora 10
8. MySQL 5.5 SysBench Benchmarks
Linux GA
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
370% performance gain Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
for MySQL 5.5 over 5.1.50; at scale Fedora 10
9. MySQL on Windows
The Right Choice
Significant Developer Adoption
• Windows is the #1 development platform for MySQL
• Making MySQL better on Windows
Performance & Scalability Lower TCO
• Improved on Windows • More Affordable
• MySQL 5.5 Benchmarks • Easier to Administer
Ease of Use Cross-platform
• MySQL Workbench • 20+ Platforms
• New Connector/NET 6.3 • No Lock-in
10. MySQL 5.5 SysBench Benchmarks
Windows GA
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
540% performance gain Intel x86_64
4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM
for MySQL 5.5 over 5.1.50; at scale Windows Server 2008
11. MySQL 5.5 SysBench Benchmarks
Windows GA
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
1560% performance gain Intel x86_64
4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM
for MySQL 5.5 over 5.1.50; at scale Windows Server 2008
12. MySQL 5.5 Scales on multi core
SysBench Read Write GA
MySQL 5.5.4
MySQL 5.5.3
Transactions/Second
MySQL 5.1
AMD Opteron 7160 (Magny-Cours) @2100 MHz
64 GB memory
2 x Intel X25E SSD drives
OS is Oracle Enterprise Linux with the Enterprise Kernel
4 sockets with a total of 48 cores.
13. Improved Recovery Performance
GA
Crash Recovery
250
200 5.1 5.1 5.1
Minutes
150
100
50 5.5 5.5 5.5
0
plugin 1.0.6
Total Scanning Log Applying
InnoDB 1.1
> 10x recovery performance gain 50 warehouses
Database=9800MB
Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
Innodb_log_file_size=2x1950MB 2.66 GHz, 32GB RAM
for MySQL 5.5 over 5.1 Buffer_pool-12GB Fedora 10
Started tested, killed server@5 mins
14. MySQL 5.5 Replication Features
1. Semisynchronous replication
Improved resilience by having master wait for slave to receive
events.
2. Slave fsync tuning & Automatic relay log recovery
Tune fsyncs so corruption is less likely on slave crashes.
Let the slave recover from corrupted relay logs.
3. Replication Heartbeat
Have a more precise failure detection mechanism.
Avoid spurious relay log rotation when the master is idle.
4. Per server replication filtering
Instruct slave to discard events from a master with a specific
server id.
Copyright Oracle Corporation 2010 19
15. MySQL 5.5 Replication Features
5. Precise Slave Type Conversions
Use different types on master and slave and get
automatic type promotion and demotion when using
RBR
6. Individual Log Flushing
Selectively flush server logs when using 'FLUSH
LOGS'
7. Safe logging of mixed transactions
Replicate transactions containing both InnoDB and
MyISAM changes
Copyright Oracle Corporation 2010 20
16. 1. Semisynchronous Replication
• MySQL replication is asynchronous
– A recovered master may have non-binlogged changes.
– This can cause master and slave to diverge.
– A failed master may have binlogged but non-replicated
changes
– If a slave is promoted to master some information can be lost.
• Semisynchronous replication ensures redundancy
– At least one slave acknowledges relay logging the transaction.
– Master waits for slave acknowledgement before commit
returns.
– (On time-out, master temporarily switches to async replication.)
Copyright Oracle Corporation 2010 21
18. 1. Semisynchronous Replication
Checking the state
On master
Rpl_semi_sync_master_status
Rpl_semi_sync_master_clients
Rpl_semi_sync_master_yes_tx
Rpl_semi_sync_master_no_tx
On Slave
Rpl_semi_sync_slave_status
Copyright Oracle Corporation 2010 23
19. 3. Replication Heartbeat
MySQL Server Replication MySQL Server
Master I/O Slave
thread
Heartbeat
SE1 SE2 SE1 SE2
Relay
Binlog Binlog
Binlog
• Automatic checking of connection status
• No more relay log rotates when the master is idle
• Detection of master/slave disconnect, configurable in milliseconds
CHANGE MASTER SET master_heartbeat_period= val;
SHOW STATUS like 'slave_heartbeat period'
SHOW STATUS like 'slave_received_heartbeats'
Copyright Oracle Corporation 2010 24
20. MySQL: Still Free, Open to the Community
Available to download and use under the GPL:
• MySQL Database (Community Server)
• All 5.5 features, all storage engines
• MySQL Cluster
• Geo-replication
• MySQL Workbench Community Edition
• MySQL Connectors
• MySQL Proxy
• Documentation
• Forums
http://mysql.com/downloads/