MySQLベースの分散インメモリDB「HeatWave」の最適化と運用自動化を支援する「MySQL Autopilot」、オラクルが発表
オラクルは、MySQLのデータベースエンジンに分散インメモリデータベース機能を搭載し、高速なデータ分析が可能な「HeatWave」向けの新機能として、機械学習による性能の最適化などを提供する「MySQL Autopilot」を発表しました。
Say hello to MySQL Autopilot, the in-memory query acceleration engine for @MySQL HeatWave Database Service in #OCI. https://t.co/u9aKiwoJCf pic.twitter.com/ec6sMJ1Fhs
— Oracle (@Oracle) August 11, 2021
HeatWaveは、2020年12月に発表されたOracle Cloud上の新サービスです。
MySQLのデータベースエンジンにカラム型の分散インメモリデータベースを採用し、通常のデータベースエンジンであるInnoDBに対して最大で400倍高速にOLAPのクエリを実行できるとされています。
これにより業務アプリケーションなどのバックエンドとしてOLTP処理をMySQLで行いつつ、同時に高速な大規模データ分析が可能になります。
従来のオプティマイザでは対応できない最適化
HeatWaveは分散インメモリエンジンであるため、大量のデータ分析を実行するに当たり、いくつのインスタンスを立ち上げ、それぞれにどれだけメモリを割り当ててデータを分散させるか、データのパーティショニングをどのように行うかなど、効率的なデータ分析を実現する上で決定しなければならないパラメータが多数あります。
これらの最適化は従来のコストベースやルールベースのオプティマイザでは十分に対応できないため、運用管理者が試行錯誤しつつ決める必要がありました。
今回発表されたMySQL Autopilotは、これらを機械学習を用いて最適なパラメータを提案してくれるというものです。
具体的には、Autopilotがスキーマやテーブルのデータをサンプリングして分析し、クラスタとメモリーサイズを予測する「Auto Provisioning」機能。
最近実行されたクエリに応じてインメモリのパーティショニングを行う上で最適な列を予測する「Auto Data Placement」、実行されたクエリに応じてオプティマイザが学習し、改善していく「Auto Query Plan Improvement」などを備えています。
Autopilotは機械学習によって利用を続けていくことで利用環境に基づいて賢くなり、最適化されていくことも大きな特長であり、最適な提案をするうえでデータベースだけでなく分散環境におけるネットワークのオーバーヘッドなど全体の挙動を基に最適化を支援していくようになっています。
インメモリの内容をオブジェクトストレージに保存
HeatWave本体にも強化が行われています。
1つは分散インメモリデータベースのスナップショットをオブジェクトストレージに保存できる機能です。
このオブジェクトストレージに対しては、通常のMySQLのデータベースエンジンとしてOLTPで行われた変更についてもオブジェクトストレージに非同期に自動的に反映されます。
これにより通常はHeatWaveを止めておき、必要に応じてHeatWaveで分析したいときに高速にインメモリデータベースにデータをロードできるようになります。
また、HeatWaveの最大容量を32TB、64ノード構成まで拡張可能にし、スケーラビリティをさらに向上させました。