drizzle talk
DESCRIPTION
Drizzle talk for MySQL Developer's Meeting.TRANSCRIPT
Introduction to Drizzle(it is a type of rain)
Master Plan
Rethink Everything
Do not assume everything was bad.
Do Not Live in the Past
Multi-Core
• No new locks
• Remove old locks
• Think today:
• Burn memory (copy on write)
• Messages scales.
MySQL Market is now just entering 16 Core.
Do not play catchup.Leap forward.
Leverage Sun
Library of Congress is just 26 Terabytes.
The world is 64bit, and there is a lot of RAM.
(SSD will be common in two years.)
MicroKernel
• Move code to the Edge
• No new features in core
• To add interfaces you have to remove == amount of code
We have no...
• Stored Procedures
• Views
• Triggers
• No Query Cache
We may though...
SP’s through Real Languages
Views are useful, but not when materialized
Triggers no, but maybe Callbacks...
Prepared Statements are out.
(no one uses them, they blow up the server)
What we are doing...
• No required authentication (think http)
• Round Trip Serialized SQL
• Make SQL Injection harder
Innodb is our Default Engine
(If Maria or PBXT turn out to be faster, we will switch. Transactional/Performance matter.)
Dump ACL
• We authenticate in clouds.
• KISS
• PAM (Pluggable Authentication Modules)
• No cost authentication
Authorization is coming...
Do people really sort blobs?
Field Types• Less primitives
• We just now have “blob”
• Weakly Typed.
• 3 byte int? (See Slashdot Comment Problem)
• Think UUID/IPV4(6)/SERIAL...
• ENUM tosses an error if a wrong value is inserted.
Интернет является UTF-8.
は、 Web UTF - 8です。
The Web is UTF-8.
UTF-8
• Protocol is UTF-8.
• We store in UTF-8.
• (default collation is still up for grabs)
Recycle
In with the New
• C99 (types for C++ code)
• Posix
• Package-lib
• STL is in.
TABLE != Table(we are going from C+ to C++)
Reuse many eyeballs
• PCRE today (not REGEX)
• No “shipped” libraries
• Maybe ICU? libatomic-ops? Intel Building Blocks? talloc()? glib()?
• Proto-buffers.
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,560
generated using David A. Wheeler's 'SLOCCount'.
LaunchPad
• Forking is good.
• No emailed patches.
• Anyone can create an account.
• Neutral ground (this has turned out to be important).
• Short URLs (and yes this matters)
Open Source• “Captains” handle trees, karma gets you in
• Those who commit are Janitors.
• Those who only work on their own code are not Captains.
• Changes are sent to mailing list. Fuzzy ++ system used (negatives are weighed more heavily)
Code Drives Decisions
Requirement for Release
• All Incompatible Changes are completed. (and more require upgrades to version)
• All tests work.
• New code additions are fine (think Linux Kernel)
So how do I get involved?
• http://launchpad.net/drizzle
• bzr branch lp:drizzle
• http://launchpad.net/drizzle-discuss
• (mailing list)
• Freenode #drizzle