Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
yoku0825
PDF, PPTX
10,437 views
Handlerさんコンニチワ
2015/06/26 JPUG/MyNA合同勉強会
Technology
◦
Read more
9
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 60
2
/ 60
3
/ 60
4
/ 60
5
/ 60
6
/ 60
7
/ 60
8
/ 60
9
/ 60
10
/ 60
11
/ 60
12
/ 60
13
/ 60
14
/ 60
15
/ 60
16
/ 60
17
/ 60
18
/ 60
19
/ 60
20
/ 60
21
/ 60
22
/ 60
23
/ 60
24
/ 60
25
/ 60
26
/ 60
27
/ 60
28
/ 60
29
/ 60
30
/ 60
31
/ 60
32
/ 60
33
/ 60
34
/ 60
35
/ 60
36
/ 60
37
/ 60
38
/ 60
39
/ 60
40
/ 60
41
/ 60
42
/ 60
43
/ 60
44
/ 60
45
/ 60
46
/ 60
47
/ 60
48
/ 60
49
/ 60
50
/ 60
51
/ 60
52
/ 60
53
/ 60
54
/ 60
55
/ 60
56
/ 60
57
/ 60
58
/ 60
59
/ 60
60
/ 60
More Related Content
PDF
MySQLを割と一人で300台管理する技術
by
yoku0825
PDF
わたしを支える技術
by
yoku0825
PDF
How to backup your mroonga database?
by
yoku0825
PDF
MySQL 5.7の次のMySQLは
by
yoku0825
PDF
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
by
yoku0825
PDF
ペパボ de MySQL
by
yoku0825
PDF
Devsの常識、DBAは非常識
by
yoku0825
PDF
MySQLerの7つ道具
by
yoku0825
MySQLを割と一人で300台管理する技術
by
yoku0825
わたしを支える技術
by
yoku0825
How to backup your mroonga database?
by
yoku0825
MySQL 5.7の次のMySQLは
by
yoku0825
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
by
yoku0825
ペパボ de MySQL
by
yoku0825
Devsの常識、DBAは非常識
by
yoku0825
MySQLerの7つ道具
by
yoku0825
What's hot
PPTX
MySQL clients
by
yoku0825
PDF
TokuDB試してみる
by
yoku0825
PDF
片手間MySQLチューニング戦略
by
yoku0825
PDF
MySQLの全文検索に関するあれやこれや
by
yoku0825
PPT
HandlerSocket plugin for MySQL
by
akirahiguchi
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
KEY
Mysql casial01
by
matsuo kenji
PDF
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
by
yoku0825
PDF
今から備えるMySQL最新バージョン5.7
by
yoku0825
PDF
MySQLをプロファイる(仮)
by
yoku0825
PDF
MySQLチューニング
by
yoku0825
PDF
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
by
yoku0825
PDF
MHAの次を目指す mikasafabric for MySQL
by
yoku0825
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
PDF
MySQL 初めてのチューニング
by
Craft works
PDF
ぐだぐだInnoDB
by
yoku0825
PDF
MySQL 5.7が魅せる新しい運用の形
by
yoku0825
KEY
My sql casual_in_fukuoka_vol1
by
Makoto Haruyama
PDF
Kernel fcache-bug
by
MITSUNARI Shigeo
PDF
MySQLステータスモニタリング
by
yoku0825
MySQL clients
by
yoku0825
TokuDB試してみる
by
yoku0825
片手間MySQLチューニング戦略
by
yoku0825
MySQLの全文検索に関するあれやこれや
by
yoku0825
HandlerSocket plugin for MySQL
by
akirahiguchi
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
Mysql casial01
by
matsuo kenji
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
by
yoku0825
今から備えるMySQL最新バージョン5.7
by
yoku0825
MySQLをプロファイる(仮)
by
yoku0825
MySQLチューニング
by
yoku0825
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
by
yoku0825
MHAの次を目指す mikasafabric for MySQL
by
yoku0825
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
MySQL 初めてのチューニング
by
Craft works
ぐだぐだInnoDB
by
yoku0825
MySQL 5.7が魅せる新しい運用の形
by
yoku0825
My sql casual_in_fukuoka_vol1
by
Makoto Haruyama
Kernel fcache-bug
by
MITSUNARI Shigeo
MySQLステータスモニタリング
by
yoku0825
Similar to Handlerさんコンニチワ
PDF
MySQL 5.5 Update #denatech
by
Mikiya Okuno
ODP
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
by
Mikiya Okuno
PDF
DTraceによるMySQL解析ことはじめ
by
Mikiya Okuno
PPT
Handlersocket 20140218
by
akirahiguchi
PDF
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
by
Colin Charles
PDF
光のMySQL 5.7
by
yoku0825
PDF
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
by
Ryusuke Kajiyama
PDF
My sqlとplugin
by
techtalkdwango
PDF
MySQL最新動向と便利ツールMySQL Workbench
by
yoyamasaki
PPTX
20150630_MySQL勉強会
by
masayoshi shiraishi
PPT
Handlersocket 20110517
by
akirahiguchi
PPT
Handlersocket etc. 20110906
by
akirahiguchi
PPTX
20140518 JJUG MySQL Clsuter as NoSQL
by
Ryusuke Kajiyama
PDF
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
by
Ryusuke Kajiyama
PDF
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
by
Ryusuke Kajiyama
PDF
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
by
Insight Technology, Inc.
PDF
Maria db
by
nekogeruge_987
PDF
hs_spider_hs_something_20110906
by
Kentoku
PDF
Enter the-dolphine
by
Mikiya Okuno
PPTX
Memcached api搭載の「my sql cluster 7.2」
by
貴仁 大和屋
MySQL 5.5 Update #denatech
by
Mikiya Okuno
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
by
Mikiya Okuno
DTraceによるMySQL解析ことはじめ
by
Mikiya Okuno
Handlersocket 20140218
by
akirahiguchi
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
by
Colin Charles
光のMySQL 5.7
by
yoku0825
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
by
Ryusuke Kajiyama
My sqlとplugin
by
techtalkdwango
MySQL最新動向と便利ツールMySQL Workbench
by
yoyamasaki
20150630_MySQL勉強会
by
masayoshi shiraishi
Handlersocket 20110517
by
akirahiguchi
Handlersocket etc. 20110906
by
akirahiguchi
20140518 JJUG MySQL Clsuter as NoSQL
by
Ryusuke Kajiyama
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
by
Ryusuke Kajiyama
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
by
Ryusuke Kajiyama
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
by
Insight Technology, Inc.
Maria db
by
nekogeruge_987
hs_spider_hs_something_20110906
by
Kentoku
Enter the-dolphine
by
Mikiya Okuno
Memcached api搭載の「my sql cluster 7.2」
by
貴仁 大和屋
More from yoku0825
PDF
MySQLerの7つ道具 plus
by
yoku0825
PDF
雑なMySQLパフォーマンスチューニング
by
yoku0825
PDF
MySQL5.7で遊んでみよう
by
yoku0825
PDF
MySQL Fabricでぼっこぼこにされたはなし
by
yoku0825
PDF
わかった気になるMySQL
by
yoku0825
PDF
MySQLアンチパターン
by
yoku0825
PDF
MySQLおじさんの逆襲
by
yoku0825
PDF
MySQLと正規形のはなし
by
yoku0825
PDF
紹介 of Anemometer
by
yoku0825
PDF
MySQLレプリケーションあれやこれや
by
yoku0825
PDF
Dockerイメージで誰でも気軽にMroonga体験
by
yoku0825
PDF
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
PDF
5.7の次のMySQL
by
yoku0825
PDF
逝くぞ最新版、罠の貯蔵は十分か
by
yoku0825
PDF
とあるイルカの近況報告
by
yoku0825
PDF
mikasafabric for MySQL
by
yoku0825
PDF
地雷職人の朝は早い
by
yoku0825
MySQLerの7つ道具 plus
by
yoku0825
雑なMySQLパフォーマンスチューニング
by
yoku0825
MySQL5.7で遊んでみよう
by
yoku0825
MySQL Fabricでぼっこぼこにされたはなし
by
yoku0825
わかった気になるMySQL
by
yoku0825
MySQLアンチパターン
by
yoku0825
MySQLおじさんの逆襲
by
yoku0825
MySQLと正規形のはなし
by
yoku0825
紹介 of Anemometer
by
yoku0825
MySQLレプリケーションあれやこれや
by
yoku0825
Dockerイメージで誰でも気軽にMroonga体験
by
yoku0825
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
5.7の次のMySQL
by
yoku0825
逝くぞ最新版、罠の貯蔵は十分か
by
yoku0825
とあるイルカの近況報告
by
yoku0825
mikasafabric for MySQL
by
yoku0825
地雷職人の朝は早い
by
yoku0825
Handlerさんコンニチワ
1.
Handlerさんコンニチワ 主にInnoDB memcached PluginとNDB
memcached Engineの違 いについて 2015/06/26 yoku0825 MyNA・JPUG合同DB勉強会
2.
MySQLはこんな こともできるん だ、と思ったら 1/59
3.
さすが変態 (c)tmtms 元ネタ 2/59
4.
褒め⾔葉です (たぶん) 3/59
5.
\こんにちは/ yoku0825@とある企業のDBA オラクれない- ポスグれない- マイエスキューエる- 家に帰ると 妻の夫- せがれの⽗- ムスメの⽗- Twitter: @yoku0825 Blog: ⽇々の覚書 MyNA
ML: ⽇本MySQLユーザ会 4/59
6.
とある企業(未承諾広告※) 5/59
7.
GMOメディアでは SQLもNoSQLも⼤ 好きなエンジニア を募集しています 6/59
8.
CMおし まい 7/59
9.
MySQL de NoSQL 8/59
10.
HandlerSocket は有名ですよね 9/59
11.
MySQL de NoSQLのパターン mysqldがMySQLプロトコル以外の何かをしゃべる1. MySQLがNoSQLデータベースをバックエンドに持っている2. MySQLがJSON/BLOB/TEXT型にJSONを⼊出⼒する関数を 持っている 3. MySQLがデータ型としてJSONを持っている4. MySQLプロトコルでSQL以外の何かを語り掛けても結果が 戻ってくる (new!!) 5. MySQLじゃない何かがMySQLプロトコルじゃない何かをし ゃべってMySQLじゃないところからデータを引っ張ってく る
(えっ) 6. 10/59
12.
1. mysqldがMySQLプロトコル以外の何かをしゃべる HandlerSocket Plugin InnoDB
Memcached Plugin memcachedプロトコルはasciiもbinaryも– daemon̲memcached̲option=”-B ..”で渡してやればいけそう - MySQL HTTP Plugin daemon pluginの類 11/59
13.
補⾜(daemon plugin) MySQL 5.1から使える mysqldの中にもう1つ(じゃなくてもいいけど)バックグラウ ンド(じゃなくてもいいけど)スレッドを⽣やす 派⽣したスレッドはMySQLの動作にそれほど縛られずに mysqldの構造体もろもろに⼿が出せる 3306以外のポートをLISTENしたり- 本当にバックグラウンド処理っぽく動いてもいい- 12/59
14.
さすが 変態 13/59
15.
2. MySQLがNoSQLデータベースをバックエンドに持っ ている MySQL Cluster(NDBCLUSTER) Mroonga(Groonga) CONNECT(ODBC,
CSV, JSON, XML, ..) Cassandra, LevelDB, S3 Storage Engine Pluginの類 14/59
16.
PostgreSQLにしゃべりかけるストレージエンジンもあり ましたよ︖ :) NoSQLじゃなくてSQLだと思うけど。 my-post-engine?: a
postgres-engine for MySQL 15/59
17.
さすが 変態 16/59
18.
3. MySQLがJSON/BLOB/TEXT型にJSONを⼊出⼒する 関数を持っている MariaDBのDynamic Column MySQL
JSON UDF FacebookMySQLのDocstore MySQL 5.7はJSON型がどうこうというより、JSON UDFで SQLっぽく出し⼊れ可能にして、Generated Columnでイン デックスを張れるようにしているのが⼤きい。 17/59
19.
5. MySQLプロトコルでSQL以外の何かを語り掛けても結 果が戻ってくる Query Rewrite
Plugin (From 5.7) HANDLERステートメント 18/59
20.
さすが 変態 19/59
21.
6. MySQLじゃない何かがMySQLプロトコルじゃない何 かをしゃべってMySQLじゃないところからデータを引っ 張ってくる daemon protocol
backend InnoDB memcached Plugin mysqld memcached InnoDB NDB memcached Engine memcached memcached NDB mod̲ndb httpd http NDB openldap slapd LDAP NDB Native NDB API ndbmtd NDB NDB MySQL ClusterでNoSQLって⾔ったら基本これ。 20/59
22.
さすが 変態 21/59
23.
MySQLの仕組み 22/59
24.
MySQLの仕組み アプリケーション ライブラリー –↓ここからmysqld↓– Connector SQL Parser Optimizer Executor Handler Storage Engine 23/59
25.
分類はテキ トーです 24/59
26.
たとえばSELECTしてみる 25/59
27.
Connector UNIX Socket, TCP
SocketをLISTEN メインスレッドが担当 mysqld̲main関数の中⾝のことを⾔っているつもり- 接続があったらclone 認証その他はcloneされたスレッドがやる- 26/59
28.
Parser MySQLプロトコルのコマンド(COM̲SHUTDOWNとか COM̲PINGとか)も解析 COM̲QUERYならSQLとしてパース クエリーキャッシュを叩くのはコイツ ジェネラルログを吐くのもコイツ 27/59
29.
Optimizer 1テーブルだけでもJOINクラス 統計情報は(Handlerレイヤー通さず)ストレージエンジンの infoメソッドを直接たたいてるっぽい。 28/59
30.
Executor WHEREやORDER BYがインデックス(=ストレージエンジン )だけで解決できなかった時はExecutorがやる(Using where; Using
filesort; Using temporary;) ストレージエンジンだけで解決できる場合は handler::ha̲index̲nextすればいいだけ - ストレージエンジンから戻された結果に対してsql/filesort.cc的なこ とをやったりする。 - スローログを吐くのはコイツ。 29/59
31.
Handler ストレージエンジンを抽象化するためのレイヤー HANDLERステートメントはParserからいきなりここを叩く Executorから透過的 30/59
32.
Storage Engine Handlerクラスを継承して作る。 handlertonってなんか 飯度拉豚(ハンドラートン)
って感じでお なかがすいた Handlerレイヤーに公開するAPIさえ実装してあれば、それ 以外は⾃由。 31/59
33.
Handler(とそれより上)は APIを提供するだけで 実際にデータを格納しない- 実際にトランザクションを提供しない- それらはストレージエンジンのレイヤーで実装されている 32/59
34.
というわ けで 33/59
35.
MySQL de NoSQLのいいところ トランザクションで保護されるかどうかとか、それはちゃん とストレージエンジンを選べば気にしなくていい ストレージエンジンを間違えると死ぬ 34/59
36.
再掲 35/59
37.
HandlerSocket daemon plugin Handlerレイヤーのちょっと上あたりを叩く もともとの設計思想は 「通信量の削減」(=非MySQLプロトコルの利⽤)と 「パーサー,
オプティマイザーのCPUコストの削減」が狙いだったらしい。 - 「memcachedプロトコルしゃべるようにすればよかった」って松信さん が嘆いていたらしい。 - 36/59
38.
InnoDB Memcached Plugin daemon
plugin InnoDB API(の、結構下の部分)を直接叩く Handler APIでなくInnoDB APIを叩くのでInnoDB専⽤- 37/59
39.
MySQL HTTP Plugin daemon
plugin ちゃんと(?) Parserから通しているので、HandlerSocketや InnoDB memcached PluginのようにパースのCPUコストをか っ⾶ばすとかそういうつもりはなさそう 38/59
40.
HANDLERステートメント Optimizerを通さずに直接Handlerレイヤーを叩くための ステー トメント MySQL ::
MySQL 5.6 Reference Manual :: 13.2.4 HANDLER Syntax- さすが変態 39/59
41.
クエリーキャッシュ パースしてすぐに結果を返す こうやって並べてみるとアグレッシブだなこいつ 40/59
42.
NDBCLUSTER MySQLプロトコルの上に乗ったSQLをパースして、NDB APIに 変換してくれる変換器 NDBはそれ⾃体で独⽴したトランザクション対応の分散データストア- 41/59
43.
memcached NDB Engine MySQL何の関係もない NDB
APIをしゃべれるmemcached mod̲ndb? 知らない⼦ですね 42/59
44.
Mroonga Groongaもそれ⾃体で独⽴したデータベースサーバー Groonga-serverはgqtp, http(nginxでラップ), memcachedプロトコル あたりもしゃべれる - ラッパーモードにより更に変態度が上がる 転置索引部分はGroonga
API、データ部分は他のエンジンのHandlerを使 う - 43/59
45.
CONNECTストレージエンジン ストレージエンジンの中に更にプラガブルストレージエンジンの 層を作っちゃったみたいな 44/59
46.
Cassandra, LevelDB, S3,
Postgres ストレージエンジ ン 理屈はNDBCLUSTERやCONNECTと⼀緒で、MySQLプロト コルを他のAPIに変換する器としてのmysqld これ系は最近かなり廃れている(と思う) 45/59
47.
redisストレージエンジン 本当はredis daemon pluginも作って、「ほら、redisプロ トコルでしゃべりかけるとredis-serverからデータを引いて 返してくれるMySQL︕︕1」とかやりたかった。 いかにも変態っぽいでしょ︖
:)- redisプロトコルをしゃべるdaemon pluginがつらくて挫 折。 ストレージエンジンはスケルトン(Exampleストレージエンジン)があ るので割と書きやすい。 - yoku0825/bogus̲redis̲storage̲engine 46/59
48.
partitionストレージエンジン mysql56> show pluginsG .. ***************************
42. row *************************** Name: partition Status: ACTIVE Type: STORAGE ENGINE Library: NULL License: GPL .. ha̲partitionクラスが物理的には別のテーブルであるパーテ ィションを透過的に扱ってくれる。 47/59
49.
PERFORMANCE̲SCHEMAストレージエンジン mysql56> show pluginsG .. ***************************
10. row *************************** Name: PERFORMANCE_SCHEMA Status: ACTIVE Type: STORAGE ENGINE Library: NULL License: GPL .. カウンターの更新はHandler使ってないので、SELECTでア クセスするためのインターフェイス以外にあんまり思いつか ない。。 48/59
50.
Binlogストレージエンジン ( ゚д゚) えっ mysql56>
SHOW PLUGINSG *************************** 1. row *************************** Name: binlog Status: ACTIVE Type: STORAGE ENGINE Library: NULL License: GPL .. 49/59
51.
Binlogストレージエンジン ちゃんとhandlertonを持ってる Breakpoint 1, binlog_init
(p=0x147bcc0) at /home/yoku0825/mysql-5.6.25/sql/binlo g.cc:887 (gdb) p *hton $4 = { state = SHOW_OPTION_YES, db_type = DB_TYPE_BINLOG, slot = 2, savepoint_offset = 0, close_connection = 0x895db0 <binlog_close_connection(handlerton*, THD*)>, savepoint_set = 0x89bed0 <binlog_savepoint_set(handlerton*, THD*, void*)>, savepoint_rollback = 0x89cb60 <binlog_savepoint_rollback(handlerton*, THD*, vo id*)>, savepoint_rollback_can_release_mdl = 0x8944a0 <binlog_savepoint_rollback_can_r elease_mdl(handlerton*, THD*)>, savepoint_release = 0, commit = 0x892590 <binlog_commit(handlerton*, THD*, bool)>, rollback = 0x8a27a0 <binlog_rollback(handlerton*, THD*, bool)>, prepare = 0x892580 <binlog_prepare(handlerton*, THD*, bool)>, 50/59
52.
Binlogストレージエンジン おそらく、2相コミットをフツーのXAと同じAPIで処理した かったから ha̲binlogクラスは存在しない(フツーのHandlerレイヤーを通ったマ ッピングじゃない) - sql/handler.ccの中にちょこちょこいるくらい。- innodb̲support̲xaを切るとバイナリーログのシリアル性 が損なわれるかもよ、というのもそれなら頷ける MySQL :: MySQL
5.6 Reference Manual :: 14.11 InnoDB Startup Options and System Variables - 51/59
53.
MySQLプロトコル でSQL以外の何か を語り掛けても結 果が戻ってくる 52/59
54.
Query Rewrite Plugin Parserの⼿前を取るPre-parse
Query Rewriteと Parserの後ろ(Optimizerの⼿前)を取るPost-parse Query Rewriteがある 53/59
55.
クエリーリライト mysqlコマンドラインクライアントを起動してるのに、うっ かりlsとか叩いちゃったことありませんか︖ mysql57> ls; +--------------+ | Tables_in_d1
| +--------------+ | t1 | +--------------+ 1 row in set, 1 warning (0.01 sec) mysql57> SHOW WARNINGS; +-------+------+---------------------------------------------------------------- ---+ | Level | Code | Messag e | +-------+------+---------------------------------------------------------------- ---+ | Note | 1105 | Query 'ls' rewritten to 'SHOW TABLES' by plugin: rewrite_exampl e. | +-------+------+---------------------------------------------------------------- ---+ 1 row in set (0.00 sec) 54/59
56.
クエリーリライト catとかお好きですか︖ mysql57> cat t1; +-----+-------+ |
num | val | +-----+-------+ | 1 | one | | 2 | two | | 3 | three | +-----+-------+ 3 rows in set, 1 warning (0.02 sec) 55/59
57.
クエリーリライト サーバーサイドで書き換えているので、クライアントを選ばな い。 56/59
58.
夢は無限 ⼤ 57/59
59.
さすが 変態 58/59
60.
Questions and/or Suggestions? 59/59
Download