Drizzle
Database
Microkernel


David Axmark
23 May, 2009
Why Drizzle?

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

  Less complex → Easier to underst...
Goals

●
  To build a database optimized for Web/Cloud
●
  As much functionality as possible in p lu gin s
●
  S im p lif ...
Gone!
• Stored Procedures
• Views
• Triggers
• Query Cache
• Prepared Statements
• Many Field types (tinyint ...)
• Window...
How Big Is It?

6.0.9-alpha: 1,203,904
5.0.75:        988,212
4.1.22:        858,902
Drizzle:       339,648


            ...
Values
• Open and well documented interfaces
• Transparent goals and processes
• Everything is public
• Have Fun!
• Make i...
Team & Community

     Sun: Brian Aker, Lee Bieber, Jay Pipes,
    Stewart Smith, Monty Taylor,Eric Day
     External comm...
Tools & Environment

• Drizzle beverages
   •Launchpad (web branch/bug handling),
   •Bazaar (revision control)
   •Hudson...
Scope


Focused on providing a database that is:
•Reliable, ACID transactional
•Fast and scalable on modern architecture
•...
Architecture Goal
                     Client        Client            Client



                              Routing Pro...
Gotcha Free

  No inserts for wrong data
  ACID/Transactional Compliant
  Clean protocol support
  Simplified type system
...
Web is in UTF-8
•この利用規約(以下「本利用規約」といいます)は
• ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫
ᚷᛖᚻᚹᛦᛚᚳᚢᛗ
• r‫ﺹ ﺸ ﺷ ﺶ ﺵ ﺴ‬   r‫ﺽ ﺼ‬

• Drizzle has only UT...
Protocol

Redesigned and rewritten from MySQL's
Pluggable
Talks new/old protocol
TCP & UDP
Built in sharding support
Async...
Storage Engines

●
  Retain Multiple Engine support
●
  Default to Transactional ACID engine
                    ●
       ...
Security, 3A's
• Authentication, Authorization, Access Control

• No cost if you do not use it

• Plugins for PAM / LDAP /...
Roadmap Now


●
    New Table Discovery
●
    Multi-Replication Applier
●
    Dependency Checking for Plugins
●
    New in...
Roadmap Later


Performance Schema
Semi-synchronous replication system
JDBC / ODBC drivers
Native language stored procedur...
Project Interaction

Examples of projects Drizzle integrates with:
memcached
Gearman/Hadoop
PBXT
InnoDB
xtraDB (Percona)
Benchmark
• Done this week on current drizzle

•8 Core Intel System/8gigs of Ram
• sysbench  --db-driver=drizzle --drizzle...
Where?

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

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

Discu...
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
Upcoming SlideShare
Loading in …5
×

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

878 views

Published on

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.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
878
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Drizzle Database Microkernel David Axmark 23 May, 2009
  2. 2. Why Drizzle? Web (and other) users does not need a full featured SQL database. Less complex → Easier to understand Less code & locks → Faster Easier to modularize → plugins Drizzle is a fork of MySQL 6.0
  3. 3. 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
  4. 4. 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
  5. 5. How Big Is It? 6.0.9-alpha: 1,203,904 5.0.75: 988,212 4.1.22: 858,902 Drizzle: 339,648 Generated using David A. Wheeler's 'SLOCCount'.
  6. 6. 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
  7. 7. Team & Community Sun: Brian Aker, Lee Bieber, Jay Pipes, Stewart Smith, Monty Taylor,Eric Day External 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)
  8. 8. 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
  9. 9. 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!
  10. 10. Architecture Goal Client Client Client Routing Proxies SQL & REST Query Memcached Cache Parser Query 101101 Parser Query 101101 Optimizer Optimizer Storage Routing
  11. 11. Gotcha Free No inserts for wrong data ACID/Transactional Compliant Clean protocol support Simplified type system No implicit committing of transaction •No new features in the core → only plugins • UTF-8 only Removed unnecessary locks
  12. 12. Web is in UTF-8 •この利用規約(以下「本利用規約」といいます)は • ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ ᚷᛖᚻᚹᛦᛚᚳᚢᛗ • r‫ﺹ ﺸ ﺷ ﺶ ﺵ ﺴ‬ r‫ﺽ ﺼ‬ • Drizzle has only UTF-8 so lots of code/complexity is gone
  13. 13. Protocol Redesigned and rewritten from MySQL's Pluggable Talks new/old protocol TCP & UDP Built in sharding support Asynchronous Checksums Batching support BSD license
  14. 14. Storage Engines ● Retain Multiple Engine support ● Default to Transactional ACID engine ● InnoDB plugin ● Allow Engines to own their own Meta Data
  15. 15. Security, 3A's • Authentication, Authorization, Access Control • No cost if you do not use it • Plugins for PAM / LDAP / HTTP Auth
  16. 16. Roadmap Now ● New Table Discovery ● Multi-Replication Applier ● Dependency Checking for Plugins ● New information Schema/Backend
  17. 17. Roadmap Later Performance Schema Semi-synchronous replication system JDBC / ODBC drivers Native language stored procedures Hash Join Cloud Service
  18. 18. Project Interaction Examples of projects Drizzle integrates with: memcached Gearman/Hadoop PBXT InnoDB xtraDB (Percona)
  19. 19. 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 • D r izzl e • transactions: 447/sec • MyS Q L 5 .4 • transactions: 364/sec
  20. 20. Where? Launchpad - http://launchpad.net/drizzle Bzr branch lp:drizzle Wiki - http://drizzle.org/wiki/Main_Page Discuss - https://launchpad.net/~drizzle-discuss IRC - Freenode #drizzle

×