Harness(ハーネス)がMySQLテーブルロックを回避するためにPercona Toolkitを追加

Harness(ハーネス)がMySQLテーブルロックを回避するためにPercona Toolkitを追加

Harness(ハーネス)は、Percona Toolkit for MySQLを同社のDatabase DevOpsスキーマ管理ワークフローに統合することを発表した。これにより、Liquibaseの変更ログは、ネイティブのALTER TABLE操作ではなく、pt-online-schema-changeを介して、対象となるMySQL DDLを実行できるようになる。

このアップデートは、負荷の高いMySQLテーブルで長時間テーブルロックが発生するリスクを軽減することを目的としている。従来のALTER TABLE操作では、変更中は書き込みがブロックされ、書き込みのキューイング、アプリケーションのタイムアウト、レプリケーション遅延の増加、インシデント対応の長期化などが発生する可能性がある。Perconaベースのパスでは、異なるアプローチを採用している。新しいスキーマでシャドーテーブルを作成し、データを小さなチャンクに分割してコピーし、トリガーによって元のテーブルとシャドーテーブルを同期させ、アトミックスワップによってロック時間を最小限に抑える。これにより、多くのスキーマ変更を夜間のメンテナンス時間ではなく、通常の業務時間中に実行できるようになる。

この機能の有効化は、Harness Database DevOps内のスキーマごとに処理される。データベーススキーマを作成する際、ユーザーはMySQLの接続情報を指定し、スキーマ構成にLiquibaseを選択し、「Percona Toolkitを使う」オプションを有効にしてから、通常のワークフローに進む。この設定はデフォルトでオフになっている。チェックを外すとLiquibaseのネイティブなMySQL DDL動作が維持され、チェックを入れると対象となる変更ログがpt-online-schema-changeを介してルーティングされる。

特定のDDLパターンはオンラインツールでは安全ではない。外部キーの追加または削除はテーブルの交換中に失敗する可能性があり、主キーまたは一意インデックスのないテーブルは決定論的なデータ チャンキングが必要なため安全に移行できない。また、主キーの削除、複雑な列の並べ替え、一部のストレージエンジンの変更など、少数の操作はサポートされる変更セットの範囲外だ。データベース ユーザーの権限も調整する必要がある。対象テーブルに対するALTER、SELECT、INSERT、UPDATEに加え、シャドーテーブルを管理するためのデータベースに対するCREATEおよびDROPが必要だ。

Harnessは、Percona Toolkitを本番環境に移行する前に、まず重要度の低い環境で有効化し、実際のワークロード条件下での動作を確認することを推奨している。また、Harness Database DevOpsを既に利用しているチームは、次回のスキーマ作成時にこの機能を試すことができ、まだプラットフォームを利用していない組織は、Harnessのエキスパートに相談して、ダウンタイムゼロのスキーマ移行オプションを検討できるとしている。

出典:Harness

この製品の詳細については、Harness製品ページをご覧ください。

You've successfully subscribed to DXable News
Great! Next, complete checkout to get full access to all premium content.
Welcome back! You've successfully signed in.
Unable to sign you in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Billing info update failed.
Dark Light