April 2014 Flash-aware MySQL フラッシュが MySQL を変える 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 でも高性能 ワークロードの種類を問わず性能が高い ü シーケンシャルワークロード ü ランダムワークロード ü 様々なブロックサイズ 容量 IOPS IO 単価 4TB 3TB 150 200,000 $$$$ 3
フラッシュの利用方法の遷移 フラッシュ + ディスクディスクとしてのフラッシュフラッシュとしてのフラッシュメモリとしてのフラッシュ より低消費電力 低コストなトランザクションを実現 フラッシュの特性を意識した実装 4
ディスクとしてのフラッシュ : そのスピードにチューニング 過去数年間の取り組みにより大幅な性能向上を達成 データ配置の最適化 NOOP スケジューラ シークなしメディアへの最適化 並列度の最適化 ブロック I/O サブシステムの高速化 高速なファイルシステムの探求 5
マルチインスタンス MySQL: IOPS 性能を絞り出す Fusion-io, 48 threads, 2400W 64GB BP 12000 11952 10000 8788 Throughput, NOT/10sec 8000 6000 4000 2000 4810 0 1 2 4 Instances 6
フラッシュとしてのフラッシュ : ただのディスクとは違う メトリックハードディスクフラッシュメモリ リード / ライト性能 シーケンシャル / ランダムの性能傾向 ブロックのリマッピング バックグラウンドでの処理 リード / ライト ほぼ対称 100 倍の性能差 ヘッドの動作を想定した I/O スケジューリング 極めて少ない リード / ライト性能が非対称 イレースという新たな操作が登場 10 倍の性能差 メモリ素子にはヘッド動作なし ログ構造のファイルシステムのように 定常的に発生 書き込み量の限界ほぼ無し制限あり 秒間あたりの I/O 回数 (IOPS) 100 回 1,000 回 / 秒 10 万回 100 万回 / 秒 レイテンシー ( 応答遅延 ) 10 ミリ秒台 10 100 マイクロ秒台 7
8 Flash-aware API による MySQL の強化
Flash-aware スタックの構成 MySQL アトミックライト, and NVM コンプレッション ファイルシステム (XFS, Ext4, Btrfs, NVMFS) フラッシュストレージ I/O と新たなプリミティブ ( アトミックライト PTRIM など ) 9
ダブルライト / アトミックライトの比較 従来の MySQL のライト処理 DB サーバ A B C 1 アプリケーションがページ A,B,C を更新する アトミックライト対応版 MySQL のライト処理 DB サーバ A B C 1 アプリケーションがページ A,B,C を更新する DRAM バッファ A B C 2 3 MySQL は更新されたページをバッファメモリにコピー MySQL はダブルライトバッファに書き込む DRAM バッファ A B C 2 MySQL は更新されたページをバッファメモリにコピー SSD ( もしくは HDD) A バッファ B C A B C 4 ステップ 3 が完了してから MySQL は表領域に書き込みを開始する iomemory A B C データベース 3 MySQL はダブルライトを省略し 表領域に直接書き込み データの整合性は下位デバイスの機能により担保される データベース 10
MySQL + アトミックライトの利点 ダブルライトを無効化 (Non-ACID) アトミックライト (ACID) ダブルライト (ACID) ACID 特性を維持したまま二倍の性能を実現 従来の場合 アトミックライトを利用する場合 アトミックライトによりデバイス性能の 99% を利用可能 デバイスの書き込み耐用期間が 2 倍に 11
アトミックライト : トランザクションのレイテンシー改善 トランザクションのレイテンシーが 2 分の 1 4 分の 1 まで短縮 Sysbench 99% Latency OLTP workload Milliseconds 200 180 160 140 120 100 80 60 40 20 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 XFS DoubleWrite Atomic DirectFS Writes Atomic Seconds 12
NVM コンプレッション フラッシュデバイスが持つ 内部的な シンプロビジョニング 動作を活用 データファイル上の不要ブロックを TRIM(UMMAP) しホール ( スパース ) 化 フラッシュ処理のマルチスレッド化 アトミックライトによりレイテンシーを削減 プラグイン式で置き換え可能な圧縮アルゴリズム MySQL NVMFS iomemory VSL 13
NVM コンプレッションの性能オーバーヘッドはごく僅か 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 100% 90% 20% Uncompressed Row Compression NVM-Compression Transaction Rate Compression Performance Penalty 14
NVM コンプレッションの性能オーバーヘッドはごく僅か 30000 TPC-C like workload 1,000 warehouses - 75GB DRAM 25000 20000 New Order TX 15000 10000 MySQL uncompressed MySQL compression Fusion-io Compression 5000 0 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 15
圧縮により書き込み減少 容量の有効利用 長寿命化 従来の InnoDB ストレージエンジンの行ベース圧縮を超える高圧縮率 デバイスの耐用期間がアトミックライトと組み合わせで最大 4 倍に % improvement Vs. Uncompressed * 60.0% 58.0% 56.0% 54.0% 52.0% 50.0% 48.0% 46.0% 44.0% Row-comp -comp 49.0% 58.5% *For LinkBench with lz77. Comparable results with lz4. 16
ファイルシステムからのミドルウェア高速化 NVM コンプレッションは POSIX インターフェイスで実現 POSIXインターフェイス fallocate(offset, len) fallocate(punch_hole) io_submit() 動作 既存ファイル / テーブルスペースの容量追加 プリアロケーション アンマップ (Punch Hole) 操作 デバイスに対し Persistent TRIM コマンド発行 非同期 I/O で透過的にアトミックライトを実現 新ファイルシステム NVMFS が NVM コンプレッションを高速化 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.