Using Drizzle OSCON 2010 Eric Day - http://oddments.org/ Senior - - PowerPoint PPT Presentation
Using Drizzle OSCON 2010 Eric Day - http://oddments.org/ Senior - - PowerPoint PPT Presentation
Using Drizzle OSCON 2010 Eric Day - http://oddments.org/ Senior Software Engineer @ Rackspace Drizzle Overview What is it? Plugins! Installing Starting drizzle.cc Boots Shell OSCON 2010 Using Drizzle 2 What is Drizzle? A
OSCON 2010 Using Drizzle 2
Drizzle Overview
- What is it?
- Plugins!
- Installing
- Starting
- drizzle.cc Boots Shell
OSCON 2010 Using Drizzle 3
What is Drizzle?
A lightweight SQL database for the “cloud” and web
OSCON 2010 Using Drizzle 4
What is Drizzle?
A lightweight SQL database for the “cloud” and web
OSCON 2010 Using Drizzle 5
What is Drizzle?
A lightweight SQL database for the “cloud” and web
OSCON 2010 Using Drizzle 6
What is Drizzle?
A lightweight SQL database for the “cloud” and web
OSCON 2010 Using Drizzle 7
What is Drizzle?
A lightweight SQL database for the “cloud” and web
OSCON 2010 Using Drizzle 8
Plugins are the new black
OSCON 2010 Using Drizzle 9
Pluggable Protocol
- MySQL Protocol (3306)
- Drizzle Protocol (4427)
- Console Plugin
- HTTP/REST?
- Postgres Protocol?
OSCON 2010 Using Drizzle 10
shell$ ./drizzled --datadir=/tmp/foo --console-enable InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use GCC atomic builtins. 100410 14:08:01 InnoDB: highest supported file format is Barracuda. 100410 14:08:01 InnoDB Plugin 1.0.4 started; log sequence number 44274 Listening on 0.0.0.0:3306 Listening on :::3306 Listening on 0.0.0.0:4427 Listening on :::4427 ./drizzled: Forcing close of thread 0 user: '' ./drizzled: ready for connections. Version: '2010.03.1336' Source distribution (trunk) drizzled>
OSCON 2010 Using Drizzle 11
drizzled> use data_dictionary; OK drizzled> select * from MODULES where MODULE_NAME='console'; MODULE_NAME MODULE_VERSION MODULE_AUTHOR IS_BUILTIN MODULE_LIBRARY MODULE_DESCRIPTION MODULE_LICENSE console 0.1 Eric Day FALSE console Console ClientBSD drizzled> ./drizzled: Forcing close of thread 1 user: '' ./drizzled: Normal shutdown 100410 14:08:08 InnoDB: Starting shutdown... 100410 14:08:09 InnoDB: Shutdown completed; log sequence number 44284 shell$
OSCON 2010 Using Drizzle 12
Drizzle Protocol
- We killed little bobby tables
- Packet header sharding key
- Support HTTP-like redirect
- Concurrent queries
OSCON 2010 Using Drizzle 13
libdrizzle
- Multi-protocol support
- MySQL, Drizzle
- Both Client and Server parts of the protocol
- Have PHP, Python, Perl and Ruby already
- Oh, and it's BSD, so use it anywhere
OSCON 2010 Using Drizzle 14
Pluggable Scheduler
- Mutli Threaded
- Pool of Threads
- Single Threaded
- Platform Specific?
OSCON 2010 Using Drizzle 15
Badges? We don't need no stinking badges!
OSCON 2010 Using Drizzle 16
Pluggable Authentication
- None
- PAM
- LDAP
- HTTP
- libdrizzle?
- authenticate(user, pass)
OSCON 2010 Using Drizzle 17
Pluggable Authorization
- None
- LDAP
- Hard-coded policy
- restrictSchema()
- restrictTable()
- restrictProcess()
OSCON 2010 Using Drizzle 18
Pluggable Query Cache
- None
- Local memory
- memcached
- NDB?
OSCON 2010 Using Drizzle 19
Pluggable Query Filter
- Rewrite/block queries
- Rewrite queries for
tuning
- (Anybody seen
MySQL Proxy)
- rewrite(schema,
query)
OSCON 2010 Using Drizzle 20
Pluggable Logging
- None
- query_log
- gearman
- Syslog
- user_statistics
- pre(session)
- post(session)
OSCON 2010 Using Drizzle 21
Pluggable Errors
- stderr
- notify
- syslog?
- errmsg(session,
priority, format, *args)
OSCON 2010 Using Drizzle 22
Pluggable Function
- md5()
- memcached_*
- gearman_*
- rot13()
OSCON 2010 Using Drizzle 23
Pluggable Replication
- Google Protocol Buffers
– Java – Python – C++
- Replicator
- Applier
- Reader
OSCON 2010 Using Drizzle 24
Pluggable Data Dictionary
- INFORMATION_SCHEMA
- Other table functions
OSCON 2010 Using Drizzle 25
- Um. So how do I run it?
OSCON 2010 Using Drizzle 26
Install
- From apt:
– In Debian unstable
- Launchpad PPA
– sudo apt-get install python-software-properties – sudo add-apt-repository ppa:drizzle-developers/ppa – sudo apt-get update – sudo apt-get install drizzle
OSCON 2010 Using Drizzle 27
Install
- From RPM:
– http://drizzle.org/wiki/RPMInstallation
OSCON 2010 Using Drizzle 28
Install
- From source:
– ./configure ; make ; make install – No bootstrap step – No system tables
OSCON 2010 Using Drizzle 29
Startup
drizzled --datadir=/my/data/path
OSCON 2010 Using Drizzle 30
Plugins
- apt-get install drizzle-plugin-pbxt
- Enabled at startup
- -plugin-add=md5,pbxt
- No need for a sysadmin to run SQL to install a
plugin!
OSCON 2010 Using Drizzle 31
OSCON 2010 Using Drizzle 32
Boots Shell
- launchpad.net/boots or lp:boots
- New command line client from Portland State
– (one of the devs, chromakode, also wrote the cool xkcd
April Fool's Day hack)
- Pluggable
- Scriptable
- Lingos – Custom command language
OSCON 2010 Using Drizzle 33
Piped SQL
shell$ boots -u root -h 127.0.0.1 -l pipedsql Boots (v0.2.0) 127.0.0.1:3306 (server v5.1.40) > SELECT * FROM mysql.user; | csv_out("users.csv") 5 rows in set (0.06s server | +0.00s working) > Boots quit. shell$ cat users.csv localhost,root,,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y, Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,,,,,0,0,0,0
OSCON 2010 Using Drizzle 34
Get involved!
- http://drizzle.org/
- https://launchpad.net/drizzle
- Contact me at http://oddments.org/
- Stickers!