在 Cosmos DB 中,物理分区在其逻辑分区之间的吞吐量如何分配?

How is the throughput available for a physical partition split amongst its logical partition in Cosmos DB?

我想了解 Physical/Logical 分区与 Azure Cosmos DB 中的吞吐量可用性之间的关系,并且对每个逻辑分区的可用吞吐量有疑问。

物理分区的可用吞吐量是在其逻辑分区之间平均分配还是随机分布,即任何逻辑分区都可以使用物理分区可用吞吐量的 0 - 100% ?

我问这个问题是因为我看到了相互矛盾的答案。

  1. 在此 Cosmos DB Conf 演示中 - Partitioning Tips for Azure Cosmos DB to Increase Performance and Save Money,演示者提到物理分区可用的吞吐量均匀分布在该物理分区内的所有逻辑分区中(或者至少是这样)我推断)。

  2. 但是我引用的documentation提到了以下内容(强调我的)。

If you provision a throughput of 18,000 request units per second (RU/s), then each of the three physical partition can utilize 1/3 of the total provisioned throughput. Within the selected physical partition, the logical partition keys Beef Products, Vegetable and Vegetable Products, and Soups, Sauces, and Gravies can, collectively, utilize the physical partition's 6,000 provisioned RU/s.

从文档来看,逻辑分区的大小或利用率似乎并不重要,我可以让一些逻辑分区收到比其他逻辑分区更多的请求,但只要我不超过物理分区的可用吞吐量,我应该没事。这是正确的吗?

P.S。这是我在此处发布的问题的第 2 部分:.

Is the throughput available for a physical partition split evenly amongst its logical partitions or is it randomly distributed in the sense that any logical partition can use 0 - 100% of the throughput available to the physical partition?

吞吐量在物理分区之间平均分配。在一个物理分区内,它在逻辑分区之间并不是平均分布的。因此,每个逻辑分区可以使用分配给该物理分区的吞吐量的 0-100%。如果物理分区的总利用率超过 100%,那么您将看到节流错误。

From the documentation it seems the size or utilization of a logical partition does not really matter and I could have some logical partitions getting more requests than others but as long as I am not exceeding the available throughput of the physical partition, I should be fine. Is this correct?

这是真的。逻辑分区大小很重要,这意味着它不能超过 20GB。利用率也限制在 10K RU/s。我们无法控制逻辑分区如何拆分为物理分区,因此您无法真正知道您的逻辑分区位于哪个物理分区。同样,也无法确保您不超过 10K物理分区的吞吐量。这就是为什么 MS 建议您选择分区键以便适当平衡利用率的原因。