gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:29:29 25 4
gpt4 key购买 nike

MarkLogic 版本 9.0-6.2

我有一个自定义的 rest GET 服务,它接受一个 ID(比方说 PolicyId)并返回一个文档(总是只返回 1 个文档)。元素范围索引是在 PolicyId 上创建的。我有 100 个不同的文档,每个 PolicyId 一个。

当我第一次使用 PolicyId 通过 SoapUI 工具调用服务时,我看到了大约 2 秒的响应时间,但是从第二次调用开始(即使我尝试使用不同的 PolicyId),我看到了响应时间大约 30 毫秒。

现在,如果我关闭 SoapUI 工具并在 1 小时后重试上述步骤,我会再次看到第一次调用的响应时间为 2 秒。

我试图了解 MarkLogic 中的行为及其与缓存的关系。为什么我第一次 react 慢?即使我提供不同的 PolicyId,我如何从第二次开始获得更快的响应?有没有办法可以提高第一次调用本身的性能?关于更好的 REST API 性能工具有什么建议吗?

非常感谢任何意见。

最佳答案

您提到您在 PolicyId 上有一个元素范围索引。元素范围索引非常快,因为它们是内存索引。如果该索引不在内存中,则需要在使用之前将整个索引加载到内存中。您的第一个查询可能会触发索引的加载(这需要时间),而后续请求则受益于已经加载的索引。在一段时间不使用索引后,它可能会被换出以供其他内存使用者使用。

Is there a way we can improve the performance for the very first call itself?

根据你的描述,我认为你正在做这样的事情:

  fn.head(cts.search(cts.jsonPropertyRangeQuery("PolicyId", "=", policyId)))

对于这种查询,您不一定需要范围索引——您处理的不是不等式查询或类型敏感查询。我会改为使用通用索引进行性能测试。

  fn.head(cts.search(cts.jsonPropertyValueQuery("PolicyId", policyId)))

我希望结果会在 2 秒到 30 毫秒之间返回,但变化可能较小。

关于MarkLogic - 自定义休息 GET REST 服务的性能变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52729771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com