azure - cosmosDB RU 吞吐量是如何实施的
问题描述
我有一个 400 RU/s 的 cosmosGB gremlin API。如果我必须运行一个需要 800 RU 的查询,这是否意味着该查询需要 2 秒才能执行?如果我将吞吐量增加到 1600 RU/s,这个查询会在半秒内执行吗?通过使用 RU,我没有看到查询性能有任何显着变化。
解决方案
正如我在此处的一个不同但有些相关的答案中解释的那样,请求单位是按每秒分配的。如果给定查询的成本超过该一秒窗口中可用的请求单位数:
- 查询将被执行
- 您现在将因请求单位超额而陷入“债务”
- 您将受到限制,直到您的“债务”还清
假设您有 400 RU/秒,并且您执行了一个花费 800 RU 的查询。它会完成,但是你会欠债大约 2 秒(每秒 400 RU,乘以 2 秒)。在这一点上,您将不再受到限制。
查询执行的速度不取决于分配的 RU 数量。无论您的速度是 1,000 RU/秒还是 100,000 RU/秒,查询都会在相同的时间内运行(除了阻止查询最初运行的任何限制时间)。因此,除了节流之外,您的 800 RU 查询将始终运行,而与 RU 计数无关。
推荐阅读
- regex - 用于失败子域的正则表达式
- c++11 - OpenCL2.0 运行时编译器不支持 c++11
- post - 为什么红色语言的POST会自动将参数的第一个字符变为大写?
- amazon-web-services - 如何在亚马逊 ec2 服务器上部署 codeigniter 应用程序?
- jpql - jpql 语句语法错误,不是有效的条件表达式
- google-apps-script - if 条件下相同的值不匹配
- algorithm - 为什么 Floyd Warshall 算法只需要 O(n^2) 空间?
- linux - 通过各种平台高效使用 LLVM
- node.js - 部署到 Google 应用引擎时获取请求有效但不发布请求?
- db2 - Teradata 聚簇表的 DB2 等效性