marklogic - xdmp :invoke call in MarkLogic

标签 marklogic

如果我们第一次调用某个xquery 模块,则需要一些时间。后续调用速度更快可能是因为 xquery 模块已解析并存在于模块缓存中。

考虑以下场景:-

HTTP Server1- xdmp:invoke('/a/sample.xqy')   
HTTP Server2 - xdmp:invoke('/a/sample.xqy') 

两个应用程序服务器都指向相同的模块数据库。

问题:-

  1. 为什么后续调用速度更快?

  2. 但是,如果我们在 diff 应用程序服务器中调用相同的模块,则调用会很慢。出于缓存目的,此 xquery 模块是否会被视为基于应用程序服务器的单独对象?

  3. MarkLogic 如何决定将哪个条目移出模块缓存?

  4. xdmp:invoke 调用后 MarkLogic 将模块保留在缓存中多长时间?

  5. 是否有任何 ML 配置可以增加模块缓存大小?

最佳答案

  1. 缓存 - 但我想您知道这一点?
  2. 听起来您已经证明了这一点。这是有道理的:不同的应用程序服务器可能具有不同的配置,这些配置可能会影响评估:例如,命名空间和模式,以及可能的输出选项。因此,将应用程序服务器 ID 构建到缓存键中可能更简单。
  3. 我相信这是一个 LRU 缓存。我不知道它有多大。
  4. 直到空间不足,或者缓存条目因更新而失效。
  5. 据我所知,没有。

关于marklogic - xdmp :invoke call in MarkLogic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090415/

相关文章:

xquery - cts 中的数字 :word query in Marklogic

azure - MarkLogic - 我们可以在 Azure Blob 上配置计划备份吗

Marklogic 如何保存多个工作区

xml - 多个重复字段上的 MarkLogic TDE xpath

xquery - Marklogic xquery 和有效循环子元素

MarkLogic CoRB 信息性消息

marklogic - 如何在 Marklogic 中获取与 URI 模式匹配的所有文档

marklogic - 如何保留cts的相关顺序:search results

MarkLogic - 自定义休息 GET REST 服务的性能变化

marklogic - 从多个集合中检索文档