Top Banner
Use the Fork Luke
54

Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Mar 26, 2015

Download

Documents

Andrew Ball
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Use the Fork Luke

Page 2: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Who Cares About ANSI?

Page 3: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

2005 OSCON -> 1/(20+)

Page 4: 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)

Page 5: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Do Not Live in the Past

Page 6: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Master Plan

Page 7: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Rethink Everything

Page 8: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Do not assume everything was

bad.

Page 9: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Focus

Page 10: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

•Drop ERP (90’s style applications)

•Drop Data Warehousing

•Drop Analytic

Page 11: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Focus On Web Applications

Page 12: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

MySQL Market is now just entering

16 Core.

Page 13: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Do not play catchup.

Leap forward.

Page 14: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Library of Congress is just 26

Terabytes.

Page 15: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

The world is 64bit, and there is a lot

of RAM.(SSD will be common in two years.)

Page 16: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Multi-Core

•No new locks

•Remove old locks

•Think today:

•Burn memory (copy on write)

•Messages scales.

Page 18: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

(Don’t lose or corrupt data)

ACID CompliantTransactional

Page 19: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

We have no...

•Stored Procedures

•Views

•Triggers

•No Query Cache

Page 21: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

We may though...

Page 22: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

SP’s through Real Languages

Page 23: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Views are useful, but not when materialized

Page 24: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Triggers no, but maybe Callbacks...

Page 25: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Prepared Statements are

out.(no one uses them, they blow up the server)

Page 26: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

What we are doing...

•No required authentication (think http)

•Round Trip Serialized SQL

•Make SQL Injection harder

Page 27: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Dump ACL

•We authenticate in clouds.

•KISS

•PAM (Pluggable Authentication Modules)

•No cost authentication

Page 28: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Authorization is coming...

Page 29: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Do people really sort blobs?

Page 30: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Интернет является UTF-8.

は、 Web UTF - 8 です。

The Web is UTF-8.

Page 32: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Recycle(be lazy, re-use libraries)

Page 33: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Maintenance Matters

(Refactoring is valuable and necessary)

Page 35: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

In with the New

•C99 (types for C++ code)

•Posix

•Package-lib

•STL is in.

Page 36: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

TABLE != Table

•(we are going from C+ to C++)

Page 37: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Performance Matters

(we all want race cars)

Page 39: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

•Scale Out

•Optimizer (OLTP)

•Execution Engine

Page 40: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Transparency + Edge

Page 41: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

LaunchPad

•Forking is good, no emailed patches.

•Anyone can create an account.

•Transparency by Launchpad staff.

Page 42: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Buildbot

•26 Active platforms.

•Anyone can sign up a new platform.

•Completely distributed.

Page 43: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

30+ Languages(within 3 months)

Page 45: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Code Drives Decisions

Page 46: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Innovation Happens

Elsewhere

Page 48: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

• Patrick Galbraith (Principle Engineer/Lycos)

• Antony Curtis (Google)

• Transactional

• Multi-System

• Integrated

• Performance

Federated X

Page 49: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Transport• Eric Day (Architect XO)

• Asynchronous

• Multi-protocol

• Partionalable

Page 50: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Distributed Query Cache

• Toru Maesake (Research Engineer/Mixi.jp)

• Non-locking

• Cloud Distributed (Memcached)

• Pluggable

Page 51: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

Where are we going?

Page 52: Use the Fork Luke. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

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. Who Cares About ANSI? 2005 OSCON -> 1/(20+)

So how do I get involved?

•http://launchpad.net/drizzle

•bzr branch lp:drizzle

•http://launchpad.net/drizzle-discuss

•(mailing list)

•Freenode #drizzle