Marklogic - 何时清除已删除的片段?

标签 marklogic resource-cleanup

MarkLogic 版本 9.0-7.2

我们在 MarkLogic 中有 600 万条记录,并根据业务需求和源文档可用性定期进行摄取和索引。

我们观察到所有 3 个节点的使用磁盘大小差异和差异都足够大(大约 30 GB),我们可以开始调查。在 Monitor -> Disk usage dashboard 上也有较低的磁盘警告和错误。

经过调查,我们发现这是因为与其他节点相比,某些节点上删除的碎片数量较少,并且假设这是使用磁盘大小差异的主要原因。

所以 2 个问题

  • 如何清除所有森林中已删除的片段,包括副本?
    • 我们可以触发什么来清理?
  • 与副本相比,为什么主森林有大量已删除的片段?

enter image description here

最佳答案

删除的片段作为合并过程的一部分被清理,即 dynamic tuning MarkLogic 用于优化性能的过程。

数据库的合并优先级设置将决定合并的 CPU 调度优先级。如果它设置为 lower,那么服务器将使用较低优先级的调度程序来确定何时运行合并。这意味着如果您的服务器看到持续的事件水平,它可能会影响系统能够进行的合并量。提高 Merge Priority 级别将允许系统进行更多合并,这将清除更多已删除的片段。

原始森林通常会看到更高的事件,因为它们会看到查询流量以及更新和删除。然后将日志框架复制到副本林。我对此的理解是,针对副本的工作负载可能较低,因此它可以获得更多低优先级的 CPU 周期来进行合并。

查看 Understanding and Controlling Database Merges有关更多详细信息,请参阅文档部分。

合并也可以在林级别或数据库级别手动触发。 Manually Initiating a Merge .谨慎启动完整的数据库级合并,因为它可能非常耗费资源,并且会在合并运行时对查询/摄取性能产生负面影响。

如果您确定默认设置不符合您的要求,您还可以调整合并设置。 Configuring Merge Policy Rules

关于Marklogic - 何时清除已删除的片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57969363/

相关文章:

opencv - 安装OpenCV后清理

java - 何时应该进行应用程序清理

java - Nexus Repository Manager - 删除旧的二进制资源

javascript - 如何在 MarkLogic 中的 JSON 文档中插入行 [更新]

marklogic - 将以二进制形式存储的 XML 文档转换为 XML?

javascript - 如何使用 forEach 遍历序列中的数组

android-studio - 如何清理 Android Studio 中未使用的资源文件

marklogic - 在 Marklogic 自定义约束中使用关系运算符进行搜索

rdf - 标记逻辑 7 : Semantic Search

ios - 如何识别 App 何时被卸载