54
Use the Fork Luke

Use the Fork Luke

  • Upload
    rusti

  • View
    22

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Use the Fork Luke

Use the Fork Luke

Page 2: Use the Fork Luke

Who Cares About ANSI?

Page 3: Use the Fork Luke

2005 OSCON -> 1/(20+)

Page 4: Use the Fork Luke

Custom Advisory Board 2005

(the customers who cared about 5.0 were Embedded)

Page 5: Use the Fork Luke

Do Not Live in the Past

Page 6: Use the Fork Luke

Master Plan

Page 7: Use the Fork Luke

Rethink Everything

Page 8: Use the Fork Luke

Do not assume everything was

bad.

Page 9: Use the Fork Luke

Focus

Page 10: Use the Fork Luke

•Drop ERP (90’s style applications)

•Drop Data Warehousing

•Drop Analytic

Page 11: Use the Fork Luke

Focus On Web Applications

Page 12: Use the Fork Luke

MySQL Market is now just entering

16 Core.

Page 13: Use the Fork Luke

Do not play catchup.

Leap forward.

Page 14: Use the Fork Luke

Library of Congress is just 26

Terabytes.

Page 15: Use the Fork Luke

The world is 64bit, and there is a lot

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

Page 16: Use the Fork Luke

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

Multi-Core

•No new locks

•Remove old locks

•Think today:

•Burn memory (copy on write)

•Messages scales.

Page 18: Use the Fork Luke

(Don’t lose or corrupt data)

ACID CompliantTransactional

Page 19: Use the Fork Luke

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

We have no...

•Stored Procedures

•Views

•Triggers

•No Query Cache

Page 21: Use the Fork Luke

We may though...

Page 22: Use the Fork Luke

SP’s through Real Languages

Page 23: Use the Fork Luke

Views are useful, but not when materialized

Page 24: Use the Fork Luke

Triggers no, but maybe Callbacks...

Page 25: Use the Fork Luke

Prepared Statements are

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

Page 26: Use the Fork Luke

What we are doing...

•No required authentication (think http)

•Round Trip Serialized SQL

•Make SQL Injection harder

Page 27: Use the Fork Luke

Dump ACL

•We authenticate in clouds.

•KISS

•PAM (Pluggable Authentication Modules)

•No cost authentication

Page 28: Use the Fork Luke

Authorization is coming...

Page 29: Use the Fork Luke

Do people really sort blobs?

Page 30: Use the Fork Luke

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

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

は、 Web UTF - 8 です。

The Web is UTF-8.

Page 32: Use the Fork Luke

Recycle(be lazy, re-use libraries)

Page 33: Use the Fork Luke

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

Maintenance Matters

(Refactoring is valuable and necessary)

Page 35: Use the Fork Luke

In with the New

•C99 (types for C++ code)

•Posix

•Package-lib

•STL is in.

Page 36: Use the Fork Luke

TABLE != Table

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

Page 37: Use the Fork Luke

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

Performance Matters

(we all want race cars)

Page 39: Use the Fork Luke

•Scale Out

•Optimizer (OLTP)

•Execution Engine

Page 40: Use the Fork Luke

Transparency + Edge

Page 41: Use the Fork Luke

LaunchPad

•Forking is good, no emailed patches.

•Anyone can create an account.

•Transparency by Launchpad staff.

Page 42: Use the Fork Luke

Buildbot

•26 Active platforms.

•Anyone can sign up a new platform.

•Completely distributed.

Page 43: Use the Fork Luke

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

30+ Languages(within 3 months)

Page 45: Use the Fork Luke

Code Drives Decisions

Page 46: Use the Fork Luke

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

Innovation Happens

Elsewhere

Page 48: Use the Fork Luke

• Patrick Galbraith (Principle Engineer/Lycos)

• Antony Curtis (Google)

• Transactional

• Multi-System

• Integrated

• Performance

Federated X

Page 49: Use the Fork Luke

Transport• Eric Day (Architect XO)

• Asynchronous

• Multi-protocol

• Partionalable

Page 50: Use the Fork Luke

Distributed Query Cache

• Toru Maesake (Research Engineer/Mixi.jp)

• Non-locking

• Cloud Distributed (Memcached)

• Pluggable

Page 51: Use the Fork Luke

Where are we going?

Page 52: Use the Fork Luke

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

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

So how do I get involved?

•http://launchpad.net/drizzle

•bzr branch lp:drizzle

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

•(mailing list)

•Freenode #drizzle