我正在尝试为Azure表存储提出分区策略。
我使用表存储的可伸缩性和性能目标作为性能估计的主要来源。文档提供了2个数字:
-
每个存储帐户的最大请求速率每秒20,000个事务,假设实体大小为1-KiB
-
单个表分区的目标吞吐量(1 kb -entities)每秒最多2,000个实体
这是否意味着我不会从超过10个分区中获得多少吞吐量优势,因为TPS是由10 × 1分区TPS限制限定的?
实际上我也想知道他们是否使用"交易"。和";entities"在文档中可以互换。第一个数字是适用于批处理还是批处理?我应该用20000除以批处理的事务数。
确实,拥有更多的10个分区不会给您带来吞吐量优势,但这只有在所有10个分区都以最大吞吐量(即2000tps)运行时才会出现。如果任何分区没有以最大吞吐量运行,那么您将没有充分利用表存储。这就是为什么这里推荐
为了实现流量的最佳负载平衡,您应该使用更多分区以便Azure表存储可以将分区分发给更多分区服务器。
我们只担心分区/分区键,Azure将处理负载平衡,直到每个分区/存储帐户的最大吞吐量。