using drizzle
play

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


  1. Using Drizzle OSCON 2010 Eric Day - http://oddments.org/ Senior Software Engineer @ Rackspace

  2. Drizzle Overview ● What is it? ● Plugins! ● Installing ● Starting ● drizzle.cc Boots Shell OSCON 2010 Using Drizzle 2

  3. What is Drizzle? A lightweight SQL database for the “cloud” and web OSCON 2010 Using Drizzle 3

  4. What is Drizzle? A lightweight SQL database for the “cloud” and web OSCON 2010 Using Drizzle 4

  5. What is Drizzle? A lightweight SQL database for the “cloud” and web OSCON 2010 Using Drizzle 5

  6. What is Drizzle? A lightweight SQL database for the “cloud” and web OSCON 2010 Using Drizzle 6

  7. What is Drizzle? A lightweight SQL database for the “cloud” and web OSCON 2010 Using Drizzle 7

  8. Plugins are the new black OSCON 2010 Using Drizzle 8

  9. Pluggable Protocol ● MySQL Protocol (3306) ● Drizzle Protocol (4427) ● Console Plugin ● HTTP/REST? ● Postgres Protocol? OSCON 2010 Using Drizzle 9

  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 10

  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 11

  12. Drizzle Protocol ● We killed little bobby tables ● Packet header sharding key ● Support HTTP-like redirect ● Concurrent queries OSCON 2010 Using Drizzle 12

  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 13

  14. Pluggable Scheduler ● Mutli Threaded ● Pool of Threads ● Single Threaded ● Platform Specific? OSCON 2010 Using Drizzle 14

  15. Badges? We don't need no stinking badges! OSCON 2010 Using Drizzle 15

  16. Pluggable Authentication ● None ● authenticate(user, pass) ● PAM ● LDAP ● HTTP ● libdrizzle? OSCON 2010 Using Drizzle 16

  17. Pluggable Authorization ● None ● restrictSchema() ● LDAP ● restrictTable() ● Hard-coded policy ● restrictProcess() OSCON 2010 Using Drizzle 17

  18. Pluggable Query Cache ● None ● Local memory ● memcached ● NDB? OSCON 2010 Using Drizzle 18

  19. Pluggable Query Filter ● Rewrite/block queries ● rewrite(schema, query) ● Rewrite queries for tuning ● (Anybody seen MySQL Proxy) OSCON 2010 Using Drizzle 19

  20. Pluggable Logging ● None ● pre(session) ● query_log ● post(session) ● gearman ● Syslog ● user_statistics OSCON 2010 Using Drizzle 20

  21. Pluggable Errors ● stderr ● errmsg(session, priority, format, *args) ● notify ● syslog? OSCON 2010 Using Drizzle 21

  22. Pluggable Function ● md5() ● memcached_* ● gearman_* ● rot13() OSCON 2010 Using Drizzle 22

  23. Pluggable Replication ● Google Protocol Buffers – Java – Python – C++ ● Replicator ● Applier ● Reader OSCON 2010 Using Drizzle 23

  24. Pluggable Data Dictionary ● INFORMATION_SCHEMA ● Other table functions OSCON 2010 Using Drizzle 24

  25. Um. So how do I run it? OSCON 2010 Using Drizzle 25

  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 26

  27. Install ● From RPM: – http://drizzle.org/wiki/RPMInstallation OSCON 2010 Using Drizzle 27

  28. Install ● From source: – ./configure ; make ; make install – No bootstrap step – No system tables OSCON 2010 Using Drizzle 28

  29. Startup drizzled --datadir=/my/data/path OSCON 2010 Using Drizzle 29

  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 30

  31. OSCON 2010 Using Drizzle 31

  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 32

  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 33

  34. Get involved! ● http://drizzle.org/ ● https://launchpad.net/drizzle ● Contact me at http://oddments.org/ ● Stickers! OSCON 2010 Using Drizzle 34

More recommend