Drizzle @OpenSQL Camp

41
Drizzle MicroKern el Rethinking MySQL

description

This talk was give in Portland at the Open SQL Camp in November 2009.

Transcript of Drizzle @OpenSQL Camp

Page 1: Drizzle @OpenSQL Camp

Drizzle MicroKerne

lRethinking MySQL

Page 2: Drizzle @OpenSQL Camp

MySQL Cab ‘05

Page 3: Drizzle @OpenSQL Camp

2005 OSCON -> 1/(20+)

Page 4: Drizzle @OpenSQL Camp

Goals•Pluggable/Infrastructure Aware

•Community Developed

•MultiCore/Concurrency

•Focus on Web Applications/Enable Others

•Modernize codebase for Manageability

•C++, STL, re-use libraries, etc

Page 5: Drizzle @OpenSQL Camp

Philosophies

Page 6: Drizzle @OpenSQL Camp

Sun’s Team Values•Have open and well-documented

interfaces

•Have transparent goals and processes, that are communicated publicly

•Have fun and encourage collaboration

•Remove barriers to contribution and participation for anyone

•Enable contributors to build a business around Drizzle

Page 7: Drizzle @OpenSQL Camp

Rethink EverythingAnd not assume everything was bad!

Page 8: Drizzle @OpenSQL Camp

Silicon ScalesCarbon does Not

(Make people productive)

Page 9: Drizzle @OpenSQL Camp

Do not play catchup.

Leap forward.

Page 10: Drizzle @OpenSQL Camp

The world is 64bit, and there is a lot

of RAM.

Page 11: Drizzle @OpenSQL Camp

Интернет является UTF-8.

は、 Web UTF - 8 です。

The Web is UTF-8.

Page 12: Drizzle @OpenSQL Camp

MicroKernel

Page 13: Drizzle @OpenSQL Camp

•Storage Engine

•Replication

•Logging

•Authentication

•Protocol

•Parser

•….

Page 14: Drizzle @OpenSQL Camp

ArchitectureClient Client Client

Routing Proxies

Query MemcachedCache

Parser Query 101101 Parser Query 101101

Optimizer Optimizer

SQL & REST

Storage Routing

Page 15: Drizzle @OpenSQL Camp

How big is it?

6.0.5-alpha:1,128,112

5.1.25-rc: 1,009,108

5.0.51b: 999,382

Drizzle: 315,560generated using David A. Wheeler's 'SLOCCount'.

Page 16: Drizzle @OpenSQL Camp

So where are we?

Page 17: Drizzle @OpenSQL Camp

New Protocol•Asynchronous

•Built In Sharding

•Pluggable

•Speak old/new/REST/other

•Remove weak attack methods

•Checksums

•BSD!

Page 18: Drizzle @OpenSQL Camp
Page 19: Drizzle @OpenSQL Camp

Storage Engines

•Retain Multiple Engine Support

•Default to ACID compliant Engine

•Innodb Plugin!

•Allow Engines to own their own Meta Data

Page 20: Drizzle @OpenSQL Camp

Logging

•Pre/Post API

•Gearman Logger

•Query Analyzer

•Syslog/etc (whatever you want to plugin)

Page 21: Drizzle @OpenSQL Camp

Replication

•New API interface to events

•Google Protobuffer message format

•Easy to extend/read from any language

•Multi-Database Synchronizer in Prototype

Page 22: Drizzle @OpenSQL Camp

Security, 3A’s

•Focus on Authentication, Authorization, and Access Control

•No cost for non-usage

•Plugins for:

•PAM / LDAP / HTTP AUTH

Page 23: Drizzle @OpenSQL Camp

Extending SQL via Functions

•Pluggable Interface designed for SWIG

•Java, Python, PHP, Perl, Ruby,…

•Extensions allow for integration with Map/Reduce Systems (Gearman, Hadoop)

Page 24: Drizzle @OpenSQL Camp

Data Dictionary/Perform

ance Interface•No Materialization

•Single Execution path means easier to maintain

•Extends capabilities of the current IS Plugin Interface

•Leveraging work by MySQL Product Development

Page 25: Drizzle @OpenSQL Camp

Open Source

Page 26: Drizzle @OpenSQL Camp

Open Source Methodology

•Internal/External Contributions are treated Equally

•Captain System

•All Project Information is Public

•Release Early/Release Often (4 month Milestone cycles)

•~2 Week Tarball Releases

Page 27: Drizzle @OpenSQL Camp

Adopt Open Source Tools

•Launchpad

•Bugs

•BZR

•Blueprints

•Distributed Regression Testing

•Buildbot

•Hudson

Page 28: Drizzle @OpenSQL Camp

30+ Languages(within 3 months)

Page 29: Drizzle @OpenSQL Camp

100+ Contributors(Over 500 people on the mailing list)

Page 30: Drizzle @OpenSQL Camp

And despite 100, we still need to add more Women to the

project :(

Page 31: Drizzle @OpenSQL Camp

Innovation Happens

Elsewhere

Page 32: Drizzle @OpenSQL Camp

• Patrick Galbraith (Principle Engineer/Lycos)

• Antony Curtis (Google)

• Transactional

• Multi-System

• Integrated

• Performance

Federated X

Page 33: Drizzle @OpenSQL Camp

Transport• Eric Day (Architect XO)

• Asynchronous

• Multi-protocol

• Partionalable

Page 34: Drizzle @OpenSQL Camp

BlitzDB• Toru Maesake (Research Engineer/Mixi.jp)

• Uses TokyoCabinet

• Analytic Usage

• Pluggable

Page 35: Drizzle @OpenSQL Camp

Wordpress!

Page 36: Drizzle @OpenSQL Camp

Roadmap --> Cirrus

•New Replication Events

•Object Based Plugin Loader

•Removal FRM

•libdrizzle

•Adopt Innodb Plugin

•C++/STL

Page 37: Drizzle @OpenSQL Camp

Aloha

•New Table Discovery

•Multi-Replication Applier

•Dependency Checking for Plugins

•New Information Schema/Backend

•Refactor store_lock

Page 38: Drizzle @OpenSQL Camp

Bell

•Server Side Scripting

•New Information Engine

•Performance Schema

•<-- insert your work :)

Page 39: Drizzle @OpenSQL Camp
Page 40: Drizzle @OpenSQL Camp
Page 41: Drizzle @OpenSQL Camp

More Information?

•http://launchpad.net/drizzle

•bzr branch lp:drizzle

•http://launchpad.net/~drizzle-discuss

•(mailing list)

•Freenode #drizzle