はじめに
本記事は、クエリの実行中に、ノードダウンが発生した場合の動作をご紹介します。(*)クエリの実行開始前に、既にノードダウン中だった場合の動作は、「接続時フェイルオーバーの概要」をご覧ください。
複数ノード構成の実行結果
Verticaの構成について
Verticaの複数ノード構成は、3ノードのケースが多いため、構成は以下を前提としています。項目 | 値 |
---|---|
ノード数 | 3 |
K-Safety | 1 |
接続時フェイルオーバー | 設定済み |
条件
複数ノード構成の場合は、以下の条件によって、クエリの動作が異なります。条件1:クエリの実行は、「レプリケーション」または「セグメンテーション」のどちらが対象だったか。(*1)
条件2:ノードダウンは、「イニシエータ」または「エグゼキュータ」のどちらが対象だったか。(*2)
(*1) 詳細は、「セグメンテーションとレプリケーションの概要」をご覧ください。条件2:ノードダウンは、「イニシエータ」または「エグゼキュータ」のどちらが対象だったか。(*2)
(*2) 詳細は、「複数ノード構成のアーキテクチャ」をご覧ください。
条件1,2 の実行イメージ
条件1:「レプリケーション」のプロジェクションが、SELECTの実行対象だった。条件2:「イニシエーター」が、SELECTの実行中にダウンした。
実行結果
実行中の各クエリは、以下の動作になります。〇:継続する、△:ロールバックされる、☓:エラーで失敗する
イニシエータがダウンした場合 | エグゼキュータがダウンした場合 | ||||
レプリケーション | セグメンテーション | レプリケーション | セグメンテーション | ||
実行中クエリ | INSERT/COPY | ☓ | ☓ | △ | △ |
SELECT | ☓ | ☓ | 〇 | ☓ | |
DELETE | ☓ | ☓ | △ | △ | |
UPDATE | ☓ | ☓ | △ | △ |
「×」のエラーメッセージは、ノードダウンの対象が「イニシエータ」もしくは「エグゼキュータ」によって異なります。
「☓」: イニシエータノードだった場合のエラーメッセージ例
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
connection to server was lost
「☓」:エグゼキュータノードだった場合のエラーメッセージ例This probably means the server terminated abnormally
before or while processing the request.
connection to server was lost
WARNING 4539: Received no response from v_toyota_db_node0002 in abandon plan
WARNING 4539: Received no response from v_toyota_db_node0002 in roll back transaction
ERROR 4142: Node failure during execution
「△」:ロールバックされた場合のメッセージ例WARNING 4539: Received no response from v_toyota_db_node0002 in roll back transaction
ERROR 4142: Node failure during execution
WARNING 4539: Received no response from v_toyota_db_node0002 in abandon plan
WARNING 4539: Received no response from v_toyota_db_node0002 in roll back transaction
OUTPUT
———–
750046462
(1 row)
WARNING 4539: Received no response from v_toyota_db_node0002 in roll back transaction
OUTPUT
———–
750046462
(1 row)
参考情報
データのロード中にノードダウンが発生した場合の動作リカバリ中の「ロードバランス」と「接続時フェイルオーバー」の動作について