use the fork luke
DESCRIPTION
Use the Fork Luke. Who Cares About ANSI?. 2005 OSCON -> 1/(20+). Custom Advisory Board 2005. (the customers who cared about 5.0 were Embedded). Do Not Live in the Past. Master Plan. Rethink Everything. Do not assume everything was bad. Focus. Drop ERP (90’s style applications) - PowerPoint PPT PresentationTRANSCRIPT
![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