※当サイトの記事には、広告・プロモーションが含まれます。

Verticaでinitiator nodeとnon-initiator nodeについての詳細な説明が欲しかったのだが...

www.publickey1.jp

www.docker.com

⇧ 便利にしてくれるのは良いのだけど、結局のところ、修正とかすることになったら、設定内容が分からんとどうしようもなくなるので、ドキュメントを分かりやすくしておいて欲しいですな。

ドキュメントがしっかりしていれば、泥沼にハマることも少ないわけで...

何と言うか、stackoverflowとかのサイトを見に行かないと解決できないようなクオリティのドキュメントが多くて辛いのよ...

Verticaでinitiator nodeとnon-initiator nodeについての詳細な説明が欲しかったのだが...

何と言うか、

docs.vertica.com

Initiator node

In the context of a client connection, the initiator node is the node associated with the specific host to which the connection was made. The initiator node can, and usually does, also function as an executor node, and is generally where the most descriptive log messages reside.

https://docs.vertica.com/24.1.x/en/glossary/initiator-node/

⇧ かなり杜撰な説明で驚きなんだが、

  • initiator node
  • executor node

⇧ とりあえず、2つNodeの種類が出てきますと。

docs.vertica.com

Executor node

Any node that participates in executing a specific SQL statement. The initiator node can, and usually does, also function as an executor node.

https://docs.vertica.com/24.1.x/en/glossary/executor-node/

⇧ とありますと。

そもそも、Nodeとは。

docs.vertica.com

Node

A host configured to run an instance of Vertica. It is a member of the database cluster. For a database to have the ability to recover from the failure of a node requires a database K-safety value of at least 1 (3+ nodes).

https://docs.vertica.com/24.1.x/en/glossary/node/

⇧ とのこと。

例の如く、ChatGPTに聞いてみたところ、

  • Node
    • 管理ノード (Management Nodes)
      • Primary node
      • Control node
      • Critical node
    • データ処理ノード (Compute Nodes)
      • Initiator node
      • Executor node
    • 接続ノード (Connection Node)
      • Connection node

⇧ 上記のような分類を提案されたんだが、正解が全く分からん...

そもそも、これらのNodeの関係性が分からんものな...

そして、

docs.vertica.com

VoltageSecureRefreshPolicy

Immediately refreshes the client policy on the initiator node. Policies on non-initiator nodes are refreshed the next time a Voltage function is called on them.

https://docs.vertica.com/24.1.x/en/glossary/node/

docs.vertica.com

Handling node failure during copy/export

When an export (EXPORT TO VERTICA) or import from Vertica (COPY FROM VERTICA) task is in progress, and a non-initiator node fails, Vertica does not complete the task automatically. A non-initiator node is any node that is not the source or target node in your export or import statement. To complete the task, you must run the statement again.

https://docs.vertica.com/24.1.x/en/data-export/db-export-and-import/handling-node-failure-during-copyexport/

⇧ 何の説明も無く、「non-initiator node」なる用語も出てくると...

更に言うと、

www.vertica.com

⇧ Verticaでは、

  • node_address
  • export_address

の2つのIPアドレスが設定されるようで、例えば、JDBC clientとかでアプリケーションから接続する時は、「export_address」が参照されますと。

で、「node_address」は、Verticaの他のNodeと通信するために利用されるようで、ここで、初めて、

  • initiator node
  • executor node

の意味が出てくると。

vertica-tech.ashisuto.co.jp

⇧ とあるように、クライアントからの接続を受け持つNodeが、「Initiator Node」の役割を担い、その他のNodeが「Executor Node」の役割を持つと。

そして、

gihyo.jp

⇧ ロードバランシングの機能もあると。

とりあえず、Verticaのドキュメントがカオスだということは分かりました...

アプリケーションのVerticaの接続情報に「export_address」が設定されているにもかかわらず、他のサーバーのNodeのテーブルが更新されるから、何か設定が間違っているのか悩んでしまったのだけど、Verticaが勝手に「node_address」を使って、どのNodeを利用するか決めているのだろうと推測される、多分...

う~む、Verticaの仕様が分からんからドツボにハマった...

兎にも角にも、ドキュメントでしっかり説明して欲しいですな...

最早、「non-initiator node」とかについては、説明が漠然とし過ぎていて、エスパーでも無いと正解が分からんよ...

こうして認識齟齬が生まれていくんだなぁ...

毎度モヤモヤ感が半端ない...

今回はこのへんで。