【问题标题】:Which node in a MarkLogic cluster runs the CPF Action Module?MarkLogic 集群中的哪个节点运行 CPF 操作模块?
【发布时间】:2014-11-24 13:47:48
【问题描述】:

我有一个包含 3 个节点的 MArkLogic 集群:

  1. 节点 1
  2. 节点 2
  3. 节点 3

在这个集群环境中,我有一个数据库 test,它有一个林 test-01。 林 test-01主要主机 位于 节点 1 上。另外,我在数据库 test

上安装了 CPF

现在,当我在数据库test中插入任何文档时,CPF动作模块将在哪个Node的Task Server线程上执行?

创建文档的林的主主机总是会执行 CPF 操作模块吗?

如果我在 Node 2Node 3 上配置林 test-01 的故障转移副本,然后在节点 01。然后哪个节点的任务服务器将执行 CPF 操作模块?

【问题讨论】:

    标签: marklogic


    【解决方案1】:

    CPF 使用触发器。预提交触发器将在处理更新的同一主机上触发。这与林和集群配置无关。提交后触发器将在受影响林主机上的任务服务器上运行(感谢 John Snelson 纠正了我对这一点的理解)

    CPF 操作使用这两种触发器。因此,如果您想将触发器限制在单个主机上,请确保在该主机上处理您的所有更新确保所有受影响的林都在同一主机上。您还希望通过将更新流量转移到下一个主机来处理主机故障转移。

    CPF 也使用数据库在线事件,有点不同。我相信它可以在任何主机上运行,​​但它可能仅限于将任何森林连接到数据库的主机。

    【讨论】:

    • 在数据库上安装 CPF 并使用在插入文档时在触发器数据库中创建的默认触发器后,如何确保在特定主机上处理此 更新 集群?另外,您能否解释一下语句“触发器将在同一处理更新的主机上触发。”
    • 当您向主机发送更新请求时,该主机会处理更新。在提交阶段,它处理任何预提交触发器。之后,它会为提交后触发器生成任务。
    • 实际上自从 MarkLogic 5 后提交触发器已经在托管导致触发器的数据的 D 节点上运行。因此,大部分 CPF 工作将在具有包含文档的森林的 D 节点上运行。
    • 谢谢,约翰:我编辑了它。 @Rahul 我不确定您对查询的运行位置有何疑问,但xdmp:host-name(xdmp:host()) 会告诉您。
    • CPF 确实同时使用了提交前和提交后触发器。预提交触发器用于捕获更新、删除、创建等状态更改。这些 pre-commit 触发器将启动 post-commit 触发器,使文档通过管道的 CPF 状态。国家是真正的行动是..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多