Flash-aware MySQL

Flash-aware MySQL
〜フラッシュがMySQLを変える〜
April 2014
Takeshi Hasegawa | Senior Sales Engineer APAC Japan | Fusion-io
不揮発メモリ(NVM)の登場
▸  フラッシュ(NAND)
•  デバイスあたり数百GB〜 10TBの容量
•  フラッシュ技術のトレンド
▸  大容量化
▸  GB単価コスト↓
▸  書き込み回数の減少
▸  セルの多値化(SLC→MLC→3BPC)
•  10万〜100万IOPS, GB/s級の帯域幅
▸  その他の不揮発メモリ技術(PCM/MRAM/STT)
▸  現時点では開発中のメモリ技術
2
なぜフラッシュを使うのか?
▸ I/O特性がデータベース用途に
適している
•  低レイテンシ、
QDの低いI/Oでも高性能
•  ワークロードの種類を問わず
性能が高い
ü シーケンシャル ワークロード
ü ランダム ワークロード
ü 様々なブロックサイズ
3
▸  容量
4TB
3TB
▸  IOPS
150
200,000
▸  IO単価
$$$$
¢¢¢¢
フラッシュの利用方法の遷移
フラッシュ + ディスク
ディスクとしてのフラッシュ
フラッシュとしてのフラッシュ
より低消費電力、低コストなトランザクションを実現
フラッシュの特性を意識した実装
4
メモリとしてのフラッシュ
ディスクとしてのフラッシュ: そのスピードにチューニング
▸  過去数年間の取り組みにより
大幅な性能向上を達成
▸  データ配置の最適化、
NOOPスケジューラ、
シークなしメディアへの最適化、
並列度の最適化
▸  ブロックI/Oサブシステムの
高速化
▸  高速なファイルシステムの探求
5
マルチインスタンス MySQL: IOPS性能を絞り出す
Fusion-io, 48 threads, 2400W – 64GB BP
11952
12000
10000
Throughput, NOT/10sec
8788
8000
6000
4810
4000
2000
0
1
6
2
Instances
4
フラッシュとしてのフラッシュ: ただのディスクとは違う
メトリック
7
ハードディスク
フラッシュメモリ
リード/ライト性能
リード/ライト、ほぼ対称
リード/ライト性能が非対称。
イレースという新たな操作が
登場
シーケンシャル/ランダムの
性能傾向
100倍の性能差。
ヘッドの動作を想定した
I/Oスケジューリング
〜10倍の性能差。
メモリ素子にはヘッド動作なし
ブロックのリマッピング、
バックグラウンドでの処理
極めて少ない
ログ構造のファイルシステムの
ように、定常的に発生
書き込み量の限界
ほぼ無し
制限あり
秒間あたりのI/O回数(IOPS)
100回〜1,000回/秒
10万回〜100万回/秒
レイテンシー(応答遅延)
10ミリ秒台
10〜100マイクロ秒台
“Flash-aware” API によるMySQLの強化
8
“Flash-aware” スタックの構成
MySQL – アトミックライト, and NVM コンプレッション
ファイルシステム(XFS, Ext4, Btrfs, NVMFS)
フラッシュストレージ –I/O と 新たなプリミティブ
(アトミックライト、 PTRIMなど)
9
ダブルライト/アトミックライトの比較
従来のMySQLのライト処理
DBサーバ
1
Page Page Page
A
B
C
2
DRAM Page Page Page
B
C
バッファ A
3
アプリケーション
がページA,B,Cを
更新する
MySQLは更新
されたページを
バッファメモリに
コピー
アトミックライト対応版MySQL
のライト処理
DBサーバ
Page Page Page
A
B
C
1
アプリケーション
がページA,B,Cを
更新する
2
MySQLは更新
されたページを
バッファメモリに
コピー
3
MySQLはダブルラ
イトを省略し、表領
域に直接書き込み
DRAM Page Page Page
B
C
バッファ A
MySQLはダブルライト
バッファに書き込む
Page
A
4
SSD
(もしくはHDD)
Page Page Page
A
B
C
バッファ
Page
A
Page
B
Page
C
データベース
10
ステップ3が完了し
てから、MySQLは
表領域に書き込
みを開始する
ioMemory
Page
B
Page
C
データベース
データの整合性は
下位デバイスの機
能により担保される
MySQL + アトミックライトの利点
ダブルライトを無効化(Non-ACID)
アトミックライト(ACID)
ACID特性を維持したまま
ダブルライト (ACID)
従来の場合
二倍の性能を実現
アトミックライトを利用する場合
•  アトミックライトによりデバイス性能の99%を利用可能
•  デバイスの書き込み耐用期間が2倍に
11
アトミックライト: トランザクションのレイテンシー改善
トランザクションのレイテンシーが 2分の1〜4分の1まで短縮
Sysbench 99% Latency
OLTP workload
200
180
Milliseconds
160
140
120
100
XFS DoubleWrite
80
Atomic
Writes
DirectFS
Atomic
60
40
0
1
107
213
319
425
531
637
743
849
955
1061
1167
1273
1379
1485
1591
1697
1803
1909
2015
2121
2227
2333
2439
2545
2651
2757
2863
2969
3075
3181
3287
3393
3499
20
Seconds
12
NVM コンプレッション
▸  フラッシュデバイスが持つ、内部的な
「シンプロビジョニング」動作を活用
MySQL
▸  データファイル上の不要ブロックを
TRIM(UMMAP)しホール(スパース)化
NVMFS
▸  フラッシュ処理のマルチスレッド化、
アトミックライトによりレイテンシーを削減
▸  プラグイン式で置き換え可能な
圧縮アルゴリズム
13
ioMemory VSL
NVMコンプレッションの性能オーバーヘッドはごく僅か
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
100%
20%
Uncompressed
Transaction Rate
14
90%
Row Compression
NVM-Compression
Compression Performance Penalty
NVMコンプレッションの性能オーバーヘッドはごく僅か
TPC-C like workload
1,000 warehouses - 75GB DRAM
30000
25000
20000
New Order TX
MySQL uncompressed
15000
MySQL compression
Fusion-io Compression
10000
5000
15
Time
Time
130
260
390
520
650
780
910
1040
1170
1300
1430
1560
1690
1820
1950
2080
2210
2340
2470
2600
2730
2860
2990
3120
3250
3380
3510
0
圧縮により書き込み減少→容量の有効利用、長寿命化
60.0%
% improvement
•  従来のInnoDBストレージ
エンジンの行ベース圧縮を
超える高圧縮率
Vs. Uncompressed *
•  デバイスの耐用期間が
アトミックライトと組み合わせで
最大4倍に
58.0%
56.0%
54.0%
52.0%
50.0%
48.0%
46.0%
44.0%
Row-comp
Page-comp
49.0%
58.5%
*For LinkBench with lz77. Comparable results with lz4.
16
ファイルシステムからのミドルウェア高速化
NVM コンプレッションは、POSIXインターフェイスで実現
POSIXインターフェイス
動作
fallocate(offset, len)
既存ファイル/テーブルスペースの容量追加、
プリアロケーション
fallocate(PUNCH_HOLE)
アンマップ(Punch Hole)操作。
デバイスに対しPersistent TRIMコマンド発行
io_submit()
非同期I/Oで透過的にアトミックライトを実現
新ファイルシステム”NVMFS”がNVMコンプレッションを高速化
17
17
NVMFS ー フラッシュメモリのためのファイルシステム
▸ Non Volatile Memory FileSystem
(不揮発メモリ用ファイルシステム)
▸ Fusion-ioが開発した、POSIX準拠のファイルシステム
▸ 利点
•  大きなファイルのプリアロケーションを効率的に実現
•  ファイルシステムを使い続けても、”断片化”は発生しない
•  ファイルシステム経由でもデバイスのI/O性能が落ちづらい
•  アトミックライトやファイル内TRIMなどの機能を利用可能に
18
https://opennvm.github.io
http://www.opencompute.org/projects/storage
19
20
“Flash-aware MySQL” by Oracle
▸ アトミックライト対応
•  Oracle MySQL >= 5.7.4
▸  NVM コンプレッション対応
•  Oracle MySQL – labs release (http://labs.mysql.com/)
▸ NVMFS のアーリーアクセスがスタート!(クローズドベータ)
21
Thank You
fusionio.com | DELIVERING THE WORLD’S DATA. FASTER.