6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL CasualAdvent Calendar 2017

Day 24

NDB Clusterをディスクベースで使おう

Posted at

NDB Clusterは勘違いされやすいですが
SSDにデータを保存できたり(性能は1/10)、
Memcache APIを使ってmemcachedでアクセスできたりします。

で今回は前者を行います。
実はディスクベースなNDB Clusterは10年仕様が変わってません。
そのためこちらの方の資料をなぞる形になります。
http://d.hatena.ne.jp/shibainu55/20081123/1225206847

性能が1/10としたのはHP社の資料からになります。
https://h50146.www5.hpe.com/services/ci/opensource/pdfs/HP_OpenServices.pdf
NVDIMMや3D XPoint(Optane SSD)がその性能を発揮すれば性能差は狭まるかもしれません。

SQLノードから実施します。

mysql> create logfile group lg_1 add undofile 'undo_1.dat' engine ndb;
Query OK, 0 rows affected (1.98 sec)
mysql> create tablespace ts_1 add datafile 'data_1.dat' \
    -> use logfile group lg_1 engine ndb;
Query OK, 0 rows affected (1.93 sec)
後はcreate tableで
tablespace ts_1 storage disk ENGINE = ndbcluster;
と最後につけるだけになります。

保存先はデータノードのデータディレクトリ配下のディレクトリになります。

$cd /var/lib/mysql-cluster
ノード1
$ sudo ls ndb_4_fs
D1  D10  D11  D2  D8  D9  data_1.dat  LCP  undo_1.dat
ノード2
$ sudo ls ndb_5_fs
D1  D10  D11  D2  D8  D9  data_1.dat  LCP  undo_1.dat
標準では128MBのファイルが作成されるようです。
$ sudo ls -l ndb_4_fs
total 262236
drwxr-x--- 4 root root      4096 Dec 23 08:52 D1
drwxr-x--- 3 root root      4096 Dec 23 08:52 D10
drwxr-x--- 3 root root      4096 Dec 23 08:52 D11
drwxr-x--- 4 root root      4096 Dec 23 08:52 D2
drwxr-x--- 3 root root      4096 Dec 23 08:52 D8
drwxr-x--- 3 root root      4096 Dec 23 08:52 D9
-rw-r--r-- 1 root root 134283264 Dec 23 09:10 data_1.dat
drwxr-x--- 3 root root      4096 Dec 23 08:52 LCP
-rw-r--r-- 1 root root 134217728 Dec 23 09:05 undo_1.dat

memcache pluginをディスクベースで使えるようにします。
/usr/share/mysql/memcache-api/ndb_memcache_metadata.sqlを編集します。
sed -i -e "s/ENGINE/tablespace ts_1 storage disk ENGINE"
SQLノードから流し込みます。
cat /usr/share/mysql/memcache-api/ndb_memcache_metadata.sql | mysql -uroot -p
後はmemache pluginを起動させるだけです。

検証した感じでは全データノードが再起動すると
ディスクベースでも素のMySQL程簡単には使えないようではありました。
きちんと学んで挙動を説明できるようにしたいものです。
ディスクベースのmemcacheでも簡単に構築できますので
興味がある人は触って見て下さい。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?