この記事では、データマージの操作手順について説明します。
背景
OceanBaseデータベースのストレージエンジンはLSM-Treeアーキテクチャに基づいており、データを静的ベースラインデータ(SSTableに格納)と動的増分データ(MemTableに格納)の2つに分けています。SSTableは読み取り専用で、一度生成されると変更されず、ディスクに保存されます。MemTableは読み書き可能で、メモリに保存されます。データベースのDML操作(挿入、更新、削除など)はまずMemTableに書き込まれ、MemTableが一定のサイズに達すると、ディスクにフラッシュしてSSTableになります。詳細については、ストレージアーキテクチャの概要をご参照ください。
MemTableのサイズが一定のしきい値を超えると、メモリを解放するためにMemTable内のデータをSSTableにフラッシュする必要があります。このプロセスをダンプと呼びます。ダンプの詳細については、ダンプをご参照ください。
ダンプにより新しいSSTableが生成されます。ダンプ回数が一定のしきい値を超えた場合、または毎日の業務のオフピーク時に、システムはベースラインSSTableとその後のダンプによって生成された増分SSTableを1つのSSTableにマージします。このプロセスをメジャーコンパクションと呼びます。メジャーコンパクションの詳細については、メジャーコンパクションをご参照ください。
適用シナリオ
定期的なメジャーコンパクション:ユーザーが手動でスケジュールを設定する必要はありません。実際の業務のピーク状況に応じて、業務のオフピーク時間帯にシステムが自動的にメジャーコンパクション操作を実行するように設定できます。
手動でのメジャーコンパクション:実際の業務状況に応じて、いつでもデータマージを開始できます。
説明
データマージ操作は業務パフォーマンスを低下させる可能性があります。業務の安定した運用を保証するため、業務のオフピーク時にこの操作を実行することを推奨します。
前提条件
データマージを開始する前に、インスタンスの状態が 実行中 であることを確認してください。データマージを実行できるのは、状態が 実行中 のインスタンスのみです。
クラスタのデータマージの開始
OB Cloudデータベースコンソールにログインします。
左側のナビゲーションペインで、インスタンス をクリックします。
インスタンスリストで対象インスタンスを見つけ、インスタンス名をクリックしてインスタンスのワークスペースに入ります。
インスタンスのワークスペースページで、アクション をクリックし、メジャーコンパクションの開始 を選択します。
ポップアップウィンドウで再度 データをコンパクション をクリックすると、対象インスタンスに対してメジャーコンパクション操作を開始できます。
説明
- 実行中のバックアップタスクがある場合、データのメジャーコンパクションによりその処理が遅延します。
- データのメジャーコンパクションはデータベースのパフォーマンスに影響を与える可能性があります。トラフィックのピーク時を避けて操作を行うことを推奨します。
メジャーコンパクションを開始した後、業務上の一時的な要件が発生した場合、テナントのダッシュボードでメジャーコンパクションタスクを一時停止または再開する操作を行うことができます。