【问题标题】:How does CosmosDB distribute throughput when provisioned per database (shared RUs)在按数据库(共享 RU)预配时 CosmosDB 如何分配吞吐量
【发布时间】:2019-05-28 11:07:46
【问题描述】:

如果我将 Cosmos DB 设置为使用共享 RU - 在数据库级别设置 RU,我无法理解预配吞吐量的分配方式。

我知道在容器(集合)级别设置时,吞吐量在逻辑分区之间划分,例如如果集合提供了 400 RU/s 的吞吐量和 10 个逻辑分区,则每个分区的吞吐量为 400/10 = 40 RU/s。

但是,如果为每个数据库设置吞吐量呢? 我发现的唯一文档是https://docs.microsoft.com/en-us/azure/cosmos-db/set-throughput#set-throughput-on-a-database 据我所知,区别在于物理分区不是专用于单个容器,而是可以托管来自不同容器的逻辑分区 - 这是否意味着吞吐量在所有集合/容器的所有逻辑分区之间分配?

例如:我有一个吞吐量为 1000 RU/s 的数据库和 2 个集合,一个具有 3 个逻辑分区,第二个具有 7 个逻辑分区,因此每个逻辑的吞吐量除以 1000 / (3 + 7) = 100 RU/s分区?

或 总吞吐量是否为所有集合/分区保留?例如有 1000 RU/s 的数据库,一个逻辑分区使用 800RU/s,另一个使用 200RU/s(无论是什么集合),那么只要它们总和不超过 1000 RU/s 就可以了吗?

也许问题很简短 - 共享吞吐量是在逻辑分区之间均匀分布(与在集合级别设置时相同)还是不是(在某种程度上不同)?

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

    感谢您的反馈。如果您在数据库级别配置吞吐量。您无法保证其中每个容器的吞吐量,除非您也为容器配置吞吐量。

    在具有预置吞吐量的数据库中创建的所有容器都必须使用分区键创建。在任何给定时间点,分配给数据库中容器的吞吐量分布在该容器的所有逻辑分区中。当您的容器共享在数据库上配置的预置吞吐量时,您无法选择性地将吞吐量应用到特定容器或逻辑分区。

    您可以按照此 URL 了解在数据库和容器级别设置吞吐量的效果。 Set throughput on a database and a container

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      相关资源
      最近更新 更多