"clouds on the horizon get ready for drizzle" by david axmark @ eliberatica 2009

21
Drizzle Database Microkernel David Axmark 23 May, 2009

Upload: eliberatica

Post on 22-Apr-2015

1.185 views

Category:

Technology


0 download

DESCRIPTION

This is a presentation held at eLiberatica 2009. http://www.eliberatica.ro/2009/ One of the biggest events of its kind in Eastern Europe, eLiberatica brings community leaders from around the world to discuss about the hottest topics in FLOSS movement, demonstrating the advantages of adopting, using and developing Open Source and Free Software solutions. The eLiberatica organizational committee together with our speakers and guests, have graciously allowed media representatives and all attendees to photograph, videotape and otherwise record their sessions, on the condition that the photos, videos and recordings are licensed under the Creative Commons Share-Alike 3.0 License.

TRANSCRIPT

Page 1: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Drizzle Database Microkernel

David Axmark23 May, 2009

Page 2: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Why Drizzle?

Web (and other) users does not need a full featured SQL database.

Less complex → Easier to understandLess code & locks → Faster

Easier to modularize → plugins

Drizzle is a fork of MySQL 6.0

Page 3: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Goals

● To build a database optimized for Web/Cloud● As much functionality as possible in p lu gin s● S im p lif y the code● Design for multi-core & high con cu r r en cy● Optimize as a member of the application stack● C om m u n it y developed● Use memory for more performance/parallelism

Page 4: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Gone!• Stored Procedures• Views• Triggers• Query Cache• Prepared Statements• Many Field types (tinyint ...)• Windows support• Character sets (only UTF-8)• Authentication system (Modularied)• Libraries shipped with the code

Page 5: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

How Big Is It?

6.0.9-alpha: 1,203,9045.0.75: 988,2124.1.22: 858,902Drizzle: 339,648

Generated using David A. Wheeler's 'SLOCCount'.

Page 6: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Values• Open and well documented interfaces• Transparent goals and processes• Everything is public• Have Fun!• Make it easy to contribute • Build a ecosystem around drizzle• Contributors should be able to make money

Page 7: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Team & Community

Sun: Brian Aker, Lee Bieber, Jay Pipes, Stewart Smith, Monty Taylor,Eric DayExternal community: Toru Maesaka, Yoshinori

Sano, Patrick Galbraith, C.J. Collier, Paul McCullagh, Padraig O'Sullivan, Mark Atwood, Alan Kasindorf, Kristian Neilsen, Jim Starkey, Josh Berkus, Mark Callaghan, Jeremy Zawodny, David Axmark, more...

• Majority of contributors are external to Sun (as I am)

Page 8: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Tools & Environment

• Drizzle beverages •Launchpad (web branch/bug handling), •Bazaar (revision control)•Hudson (Extensible continuous integration engine)

• Buildbot today on >12 clients:•OpenSolaris, Solaris 10•Mac OS•Linux [Ubuntu, Gentoo, CentOS, Fedora, Debian]

• Community interaction and peer review• IRC, Mailing lists

Page 9: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Scope

Focused on providing a database that is:•Reliable, ACID transactional•Fast and scalable on modern architecture•Simply design for ease of installation and management•Easy to use and hard to misuse!

Page 10: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Architecture GoalClient Client Client

Routing Proxies

Query MemcachedCache

Parser Query 101101 Parser Query 101101

Optimizer Optimizer

SQL & REST

Storage Routing

Page 11: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Gotcha Free

No inserts for wrong dataACID/Transactional CompliantClean protocol supportSimplified type systemNo implicit committing of transaction

•No new features in the core → only plugins• UTF-8 only

Removed unnecessary locks

Page 12: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Web is in UTF-8•この利用規約(以下「本利用規約」といいます)は• ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ• rس ش ش ش ش ص

y

r ص ض

• Drizzle has only UTF-8 so lots of code/complexity is gone

Page 13: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Protocol

Redesigned and rewritten from MySQL's Pluggable Talks new/old protocol TCP & UDP Built in sharding support Asynchronous Checksums Batching support BSD license

Page 14: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
Page 15: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Storage Engines

● Retain Multiple Engine support● Default to Transactional ACID engine

● InnoDB plugin● Allow Engines to own their own Meta Data

Page 16: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Security, 3A's

• Authentication, Authorization, Access Control

• No cost if you do not use it

• Plugins for PAM / LDAP / HTTP Auth

Page 17: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Roadmap Now

● New Table Discovery● Multi-Replication Applier● Dependency Checking for Plugins● New information Schema/Backend

Page 18: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Roadmap Later

Performance SchemaSemi-synchronous replication systemJDBC / ODBC driversNative language stored proceduresHash JoinCloud Service

Page 19: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Project Interaction

Examples of projects Drizzle integrates with:memcachedGearman/HadoopPBXTInnoDBxtraDB (Percona)

Page 20: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Benchmark• Done this week on current drizzle •8 Core Intel System/8gigs of Ram• sysbench --db-driver=drizzle --drizzle-mysql=on --max-time=200 --max- requests=0 --test=oltp --drizzle-db=test --drizzle-port=4427 --drizzle- host=127.0.0.1 --drizzle-user=root --db-ps-mode=disable --db- driver=drizzleclient --drizzle-table-engine=innodb --oltp-read-only=on --oltp-table-size=100000

• Dr izzl e • transactions: 447/sec

• MyS Q L 5 .4• transactions: 364/sec

Page 21: "Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009

Where?

Launchpad - http://launchpad.net/drizzleBzr branch lp:drizzle

Wiki - http://drizzle.org/wiki/Main_Page

Discuss - https://launchpad.net/~drizzle-discuss

IRC - Freenode #drizzle