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.
© Copyright 2024 ExpyDoc