Download - Use the Fork Luke
![Page 1: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/1.jpg)
Use the Fork Luke
![Page 2: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/2.jpg)
Who Cares About ANSI?
![Page 3: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/3.jpg)
2005 OSCON -> 1/(20+)
![Page 4: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/4.jpg)
Custom Advisory Board 2005
(the customers who cared about 5.0 were Embedded)
![Page 5: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/5.jpg)
Do Not Live in the Past
![Page 6: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/6.jpg)
Master Plan
![Page 7: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/7.jpg)
Rethink Everything
![Page 8: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/8.jpg)
Do not assume everything was
bad.
![Page 9: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/9.jpg)
Focus
![Page 10: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/10.jpg)
•Drop ERP (90’s style applications)
•Drop Data Warehousing
•Drop Analytic
![Page 11: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/11.jpg)
Focus On Web Applications
![Page 12: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/12.jpg)
MySQL Market is now just entering
16 Core.
![Page 13: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/13.jpg)
Do not play catchup.
Leap forward.
![Page 14: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/14.jpg)
Library of Congress is just 26
Terabytes.
![Page 15: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/15.jpg)
The world is 64bit, and there is a lot
of RAM.(SSD will be common in two years.)
![Page 16: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/16.jpg)
MicroKernel
•Move code to the Edge
•No new features in core
•To add interfaces you have to remove == amount of code
![Page 17: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/17.jpg)
Multi-Core
•No new locks
•Remove old locks
•Think today:
•Burn memory (copy on write)
•Messages scales.
![Page 18: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/18.jpg)
(Don’t lose or corrupt data)
ACID CompliantTransactional
![Page 19: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/19.jpg)
Innodb is our Default Engine
(If Maria or PBXT turn out to be faster, we will switch. Transactional/Performance matter.)
![Page 20: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/20.jpg)
We have no...
•Stored Procedures
•Views
•Triggers
•No Query Cache
![Page 21: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/21.jpg)
We may though...
![Page 22: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/22.jpg)
SP’s through Real Languages
![Page 23: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/23.jpg)
Views are useful, but not when materialized
![Page 24: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/24.jpg)
Triggers no, but maybe Callbacks...
![Page 25: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/25.jpg)
Prepared Statements are
out.(no one uses them, they blow up the server)
![Page 26: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/26.jpg)
What we are doing...
•No required authentication (think http)
•Round Trip Serialized SQL
•Make SQL Injection harder
![Page 27: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/27.jpg)
Dump ACL
•We authenticate in clouds.
•KISS
•PAM (Pluggable Authentication Modules)
•No cost authentication
![Page 28: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/28.jpg)
Authorization is coming...
![Page 29: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/29.jpg)
Do people really sort blobs?
![Page 30: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/30.jpg)
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.
![Page 31: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/31.jpg)
Интернет является UTF-8.
は、 Web UTF - 8 です。
The Web is UTF-8.
![Page 32: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/32.jpg)
Recycle(be lazy, re-use libraries)
![Page 33: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/33.jpg)
Reuse many eyeballs
•PCRE today (not REGEX)
•No “shipped” libraries
•Maybe ICU? libatomic-ops? Intel Building Blocks? talloc()? glib()?
•Proto-buffers.
![Page 34: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/34.jpg)
Maintenance Matters
(Refactoring is valuable and necessary)
![Page 35: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/35.jpg)
In with the New
•C99 (types for C++ code)
•Posix
•Package-lib
•STL is in.
![Page 36: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/36.jpg)
TABLE != Table
•(we are going from C+ to C++)
![Page 37: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/37.jpg)
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,560generated using David A. Wheeler's 'SLOCCount'.
![Page 38: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/38.jpg)
Performance Matters
(we all want race cars)
![Page 39: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/39.jpg)
•Scale Out
•Optimizer (OLTP)
•Execution Engine
![Page 40: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/40.jpg)
Transparency + Edge
![Page 41: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/41.jpg)
LaunchPad
•Forking is good, no emailed patches.
•Anyone can create an account.
•Transparency by Launchpad staff.
![Page 42: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/42.jpg)
Buildbot
•26 Active platforms.
•Anyone can sign up a new platform.
•Completely distributed.
![Page 43: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/43.jpg)
Open Source• All internal and external contributors are equal.
• “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)
![Page 44: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/44.jpg)
30+ Languages(within 3 months)
![Page 45: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/45.jpg)
Code Drives Decisions
![Page 46: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/46.jpg)
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)
![Page 47: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/47.jpg)
Innovation Happens
Elsewhere
![Page 48: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/48.jpg)
• Patrick Galbraith (Principle Engineer/Lycos)
• Antony Curtis (Google)
• Transactional
• Multi-System
• Integrated
• Performance
Federated X
![Page 49: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/49.jpg)
Transport• Eric Day (Architect XO)
• Asynchronous
• Multi-protocol
• Partionalable
![Page 50: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/50.jpg)
Distributed Query Cache
• Toru Maesake (Research Engineer/Mixi.jp)
• Non-locking
• Cloud Distributed (Memcached)
• Pluggable
![Page 51: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/51.jpg)
Where are we going?
![Page 52: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/52.jpg)
TodayClient2 ClientN
Connection Thread Pool
Parser Query 101101
Client1
Optimizer
Storage Engines InnoDB MyISAM MERGE MEMORY ARCHIVE
Query Cache
![Page 53: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/53.jpg)
TomorrowClient2 ClientN
Routing Proxies
Parser Query 101101
Client1
Optimizer
Query Memcached Cache
Parser Query 101101
Optimizer
Storage Routing
SQL & REST
![Page 54: Use the Fork Luke](https://reader030.vdocuments.net/reader030/viewer/2022012917/568159a3550346895dc6fa9a/html5/thumbnails/54.jpg)
So how do I get involved?
•http://launchpad.net/drizzle
•bzr branch lp:drizzle
•http://launchpad.net/drizzle-discuss
•(mailing list)
•Freenode #drizzle