首页 > 解决方案 > cosmosDB RU 吞吐量是如何实施的

问题描述

我有一个 400 RU/s 的 cosmosGB gremlin API。如果我必须运行一个需要 800 RU 的查询,这是否意味着该查询需要 2 秒才能执行?如果我将吞吐量增加到 1600 RU/s,这个查询会在半秒​​内执行吗?通过使用 RU,我没有看到查询性能有任何显着变化。

标签: azureazure-cosmosdbazure-cosmosdb-gremlinapi

解决方案


正如我在此处的一个不同但有些相关的答案中解释的那样,请求单位是按每秒分配的。如果给定查询的成本超过该一秒窗口中可用的请求单位数:

  • 查询将被执行
  • 您现在将因请求单位超额而陷入“债务”
  • 您将受到限制,直到您的“债务”还清

假设您有 400 RU/秒,并且您执行了一个花费 800 RU 的查询。它会完成,但是你会欠债大约 2 秒(每秒 400 RU,乘以 2 秒)。在这一点上,您将不再受到限制。

查询执行的速度不取决于分配的 RU 数量。无论您的速度是 1,000 RU/秒还是 100,000 RU/秒,查询都会在相同的时间内运行(除了阻止查询最初运行的任何限制时间)。因此,除了节流之外,您的 800 RU 查询将始终运行,而与 RU 计数无关。


推荐阅读