Virtualizing and Scaling for the Future
Tuesday, March 29, 2011
Who am I?
Was Director of Architecture for MySQL
Founder/CTO Data Differential
DrizzleGearman
Memcached
Tuesday, March 29, 2011
In the beginning...
Tuesday, March 29, 2011
• 2008 Sun buys MySQL
• 2008 Drizzle forks from MySQL
• 2009 Oracle buys Sun
• 2010 Drizzle Developers split from Oracle
• 2011 First GA Release, Drizzle7
Tuesday, March 29, 2011
• Entirely Open Source RDBMS
• C++, with a MicroKernel Design
• No Gotchas
Drizzle
Tuesday, March 29, 2011
Drizzle7(Quick Update)
Tuesday, March 29, 2011
Today’s Pluggable Interfaces
• Replication
• Storage Engine
• Logging
• Authentication
• Authorization
• Table Functions
• Functions
• Protocol
• Query Rewrite
• XA
Tuesday, March 29, 2011
HTTP Blob Streaming
ClientReplication
Client
Listener
Query MemcachedCache
Parser
Optimizer
Storage System
Logging
Error Reporting
HTTPClient
MySQL
Memcached
Gearman
Executioner
SQL
Drizzle
MicroKernel
Cloud Service
Tuesday, March 29, 2011
Replication
• Google Protocol Buffer Based
• Replicates row transformations.
• Integrates today with RabbitMQ, Casandra. Memcached, Gearman
Tuesday, March 29, 2011
INSERT
INSERT
UPDATE
INSERT
StoredTransactionally
Tuesday, March 29, 2011
Master
Slave
Slave
Slave
Tuesday, March 29, 2011
Master
Slave
Slave
Slave
Tuesday, March 29, 2011
Master
Master
Master
Master
Tuesday, March 29, 2011
What group commit problem?
Tuesday, March 29, 2011
TransactionLog
Binlog
Group Commit?
DatabaseKernel
Tuesday, March 29, 2011
TransactionLog
No Group Commit Required
DatabaseKernel
Tuesday, March 29, 2011
libDrizzle
• Supports Drizzle (and MySQL, and SQLite)
• Asynchronous
• BSD
• Lawyer free
Tuesday, March 29, 2011
Client
Instance
Amazon S3
Storage
NoSQL Stream Access
Tuesday, March 29, 2011
Is there more?
Tuesday, March 29, 2011
No Gotchas
• No NULL when you don’t want NULL
• No ALTER TABLES that fake’ it
• Real datetime (64bit), with microseconds
• IPV6
• No updates that “half complete”
Tuesday, March 29, 2011
Authentication/Authorization
• No Cost Authentication
• PAM, LDAP, HTTP
Tuesday, March 29, 2011
Table Functions
• TABLE_CACHE
• TABLE_DEFINITION_CACHE
• SHOW TEMPORARY TABLES
• All new SQL compliant information_schema
Tuesday, March 29, 2011
Data Dictionay
• Separate Information Schema for ANSI SQL access.
• All based on Table Functions
• No Materialization
• Single Execution Path
Tuesday, March 29, 2011
Интернет является UTF-8.
は、 Web UTF - 8です。
The Web is UTF-8.
Tuesday, March 29, 2011
How about locks?
Tuesday, March 29, 2011
SHOW PROCESSLIST(now based on table functions)
Tuesday, March 29, 2011
--skip-grants(none of the current GRANTs require LOCKS
actually…)
Tuesday, March 29, 2011
store_lock()(all engines are not created equally)
Tuesday, March 29, 2011
120+ Developers Since Day One
26/36 on average each month
Tuesday, March 29, 2011
Drizzle 7+
Tuesday, March 29, 2011
Users
Instance
Schema
Table
Table
Table
Schema
Table
Table
Table
Schema
Table
Table
Table
Schema
Table
Table
Table
Tuesday, March 29, 2011
Users
Instance
Schema
Table
Table
Table
Users
Schema
Table
Table
Table
Tuesday, March 29, 2011
• Cuts the 30/40% hit from virtualizing
• Single instance maintenance
• Still allows for IO spread on San/NAS
Tuesday, March 29, 2011
• Supports Partial Backup
• No locking
• Single solution, point-in-time recovery in a single solution.
• Comes with the database.
Hot Backup
Tuesday, March 29, 2011
http://drizzle.orghttp://planetdrizzle.orgFreenode #drizzle
Tuesday, March 29, 2011