"clouds on the horizon get ready for drizzle" by david axmark @ eliberatica 2009
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
Drizzle Database Microkernel
David Axmark23 May, 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
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
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
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'.
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
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)
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
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!
Architecture GoalClient Client Client
Routing Proxies
Query MemcachedCache
Parser Query 101101 Parser Query 101101
Optimizer Optimizer
SQL & REST
Storage Routing
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
Web is in UTF-8•この利用規約(以下「本利用規約」といいます)は• ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ• rس ش ش ش ش ص
y
r ص ض
• Drizzle has only UTF-8 so lots of code/complexity is gone
Protocol
Redesigned and rewritten from MySQL's Pluggable Talks new/old protocol TCP & UDP Built in sharding support Asynchronous Checksums Batching support BSD license
Storage Engines
● Retain Multiple Engine support● Default to Transactional ACID engine
● InnoDB plugin● Allow Engines to own their own Meta Data
Security, 3A's
• Authentication, Authorization, Access Control
• No cost if you do not use it
• Plugins for PAM / LDAP / HTTP Auth
Roadmap Now
● New Table Discovery● Multi-Replication Applier● Dependency Checking for Plugins● New information Schema/Backend
Roadmap Later
Performance SchemaSemi-synchronous replication systemJDBC / ODBC driversNative language stored proceduresHash JoinCloud Service
Project Interaction
Examples of projects Drizzle integrates with:memcachedGearman/HadoopPBXTInnoDBxtraDB (Percona)
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
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