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

Post on 22-Apr-2015

1.185 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

top related