mysql de nosql fukuoka
TRANSCRIPT
MySQLでNoSQL かじやま りゅうすけ @RKajiyama
2種類のmemcached連携
InnoDB Storage Engine
MySQL Server
Memcached plugin
Application SQL
(MySQL Protocol)
NoSQL (Memcached Protocol)
mysqld
NDBCluster Storage Engine
MySQL Server
Application SQL
(MySQL Protocol)
NoSQL (Memcached Protocol)
mysqld
Data Nodes
NDB API
Memcached Driver for NDB
memcached
MySQL Server 5.6の場合
InnoDB Storage Engine
MySQL Server
Memcached plugin
Application SQL
(MySQL Protocol)
NoSQL (Memcached Protocol)
mysqld
• MySQLサーバにプラグインとしてmemcachedインターフェースを追加
• アプリからの接続先= MySQLサーバ
• データ格納先 =InnoDBテーブル
• トランザクション利用可能
MySQL Cluster • シェアードナッシング型Ac;ve-‐Ac;veデータベースクラスタ • トランザクション対応キーバリューデータストア
Data Nodes
Node Group 1
F1
F3
F3
F1
Nod
e 1
Nod
e 2
Node Group 2
F2
F4
F4
F2
Nod
e 3
Nod
e 4
Applica;on Nodes
Cluster Mgmt
Cluster Mgmt
REST JPA
MySQL Cluster 7.2の場合
NDBCluster Storage Engine
MySQL Server
Application SQL
(MySQL Protocol)
NoSQL (Memcached Protocol)
mysqld
Data Nodes
NDB API
Memcached Driver for NDB
memcached
• memcachedにNDB API用 ドライバを追加
• アプリからの接続先= memcached
• データ格納先 =データノード上のndbclusterテーブル
• トランザクション利用可能
• レプリケーション利用可能
Cluster & Memcached – Schema-Free
<town:maidenhead,SL6>
key value
<town:maidenhead,SL6>
key value
Key Value
town:maidenhead SL6
generic table
Application view
SQL view
Cluster & Memcached – Defined Schema
<town:maidenhead,SL6>
prefix key value
<town:maidenhead,SL6>
key value
Prefix Table Key-‐col Val-‐col policy
town: map_zip town code cluster
Config tables
town ... code ...
maidenhead ... SL6 ...
map_zip
Application view
SQL view
hWp://clusterdb.com/u/memcached
SQL and NoSQL
InnoDB Storage Engine
MySQL Server
Memcached plugin
Application SQL
(MySQL Protocol)
NoSQL (Memcached Protocol)
mysqld
NDBCluster Storage Engine
MySQL Server
Application SQL
(MySQL Protocol)
NoSQL (Memcached Protocol)
mysqld
Data Nodes
NDB API
Memcached Driver for NDB
memcached
dev.mysql.com