OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

データのロード中にノードダウンが発生した場合の動作

公開日:
更新日:
技術情報
アーキテクチャ
クライアント
#トラブルシューティング

はじめに

Verticaは、3ノード以上の構成であれば、いずれかのノードがダウンした場合もサービスを継続(*)できます。バッチ処理は、データのロードを長時間おこなうため、ロード中に障害でノードがダウンする事も考えられます。本記事では、ロード中にノードダウンが発生した場合の動作を解説します。

(*)Verticaの可用性機能
https://www.ashisuto.co.jp/cm/analytics-database/data_fault_tolerant.html

Verticaの構成について

Verticaの複数ノード構成は、3ノードのケースが多いため、構成は以下のとおりとします。

項目名

条件

ノード数

3

K-Safety

1

接続先ノード

ETLサーバからの最初の接続先は、ノード1とします。

障害発生パターンごとの動作

ロード処理が始まる前にVerticaがノードダウンしている場合やロード処理中にノードダウンしてしまった場合などが考えられます。本記事では、以下の4パターンを解説します。

①接続先ノードがダウン中の場合

障害発生状況

ノード1がダウン中に、ETLサーバからロード処理が実行されました。

ノード名

ステータス

ノード1

DOWN

ノード2

UP

ノード3

UP

実行結果

接続時フェイルオーバー(*)が設定されている場合は、接続先がノード2(またノード3)に変更されて、ロード処理が実行されます。接続時フェイルオーバーが設定されていない場合は、ノード1に接続できずエラー(例:”vsql: could not connect to server: 接続を拒否されました”)となり、ロード処理が開始されません。

(*)接続時フェイルオーバーの概要
https://www.ashisuto.co.jp/cm/analytics-database/failover.html

②接続先以外のノードがダウン中の場合

障害発生状況

ノード2がダウン中に、ETLサーバからロード処理が実行されました。

ノード名

ステータス

ノード1

UP

ノード2

DOWN

ノード3

UP

実行結果

接続時フェイルオーバーが設定されているかどうかに関わらず、ロード処理は実行されます。

③ロード処理中に接続先ノードがダウンした場合

障害発生状況

ETLサーバからロード処理が実行中に、ノード1がダウンしました。

ノード名

ステータス

ノード1

ロード処理中にDOWN

ノード2

UP

ノード3

UP

実行結果

接続時フェイルオーバーが設定されているかどうかに関わらず、ロード処理はエラー(例:”server closed the connection unexpectedly”)になり、ロールバックされます。

④ロード処理中に接続先以外のノードがダウンした場合

障害発生状況

ETLサーバからロード処理が実行中に、ノード2がダウンしました。

ノード名

ステータス

ノード1

UP

ノード2

ロード処理中にDOWN

ノード3

UP

実行結果

接続時フェイルオーバーが設定されているかどうかに関わらず、ロード処理はエラー(例:”ERROR 4142: Node failure during execution”)になり、ロールバックされます。ノード1とは、別のノード2もしくはノード3がノードダウンした場合も、ロード処理は失敗します。

参考情報

リカバリ中の「ロードバランス」と「接続時フェイルオーバー」の動作について
https://www.ashisuto.co.jp/cm/analytics-database/recovery_action.html

検証バージョンについて

この記事の内容はVertica 12.0で確認しています。

更新履歴

2023/07/04 「はじめに」の表現を修正
2023/06/16 本記事を公開