dynamodb 可以处理什么 TPS?

msP*_*ram 2 database bigdata amazon-web-services amazon-dynamodb

我认为 Cassandra 或 DynamoDB 等 NoSQL 数据库可以处理 10,000 QPS 或 TPS。但当我最近查看一些 DynamoDB 配置时,我经常看到低于 100 TPS。这是一个线程的 100 TPS 还是所有线程的 100 TPS?我错过了什么吗?搜索了AWS文档但没有找到类似问题的解决方案。谢谢

F_S*_*O_K 6

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html

没有任何限制。默认情况下,每个表可以配置的最大吞吐量为 40,000 RCU(每秒读取)和 40,000 WCU(每秒写入)。但这只是为了防止用户意外配置过多吞吐量而设置的限制,您只需请求对您的帐户应用更高的限制即可。


Nad*_*'El 6

Cassandra、Scylla 或 DynamoDB 等 NoSQL 数据库的要点之一是它们是可扩展的 - 它们使用节点集群,这些节点可以增长以允许(理论上)每秒几乎无限数量的请求。因此,您可以处理 100 rps、10,000 rps,甚至 10,000,000 rps,具体取决于集群的大小(以及每个单独节点的大小)。在软件即服务 DynamoDB 中,您看不到服务器后面的实际集群,而是需要“配置”每秒允许的请求数。

我不知道你是如何配置给你 100 rps 的设置的。您也可能错误地测量了这个吞吐量:您提到了线程。您在谈论客户端线程吗?因为显然,如果您只有一个客户端线程,那么您根本不是在测量吞吐量,而是在测量延迟:如果客户端线程发送一个请求并在发送下一个请求之前等待其回复,那么如果您的请求有 10 毫秒延迟(即使是因为网络延迟),您只能从该线程执行其中 100 个操作。但是您可以使用 1000 个这样的线程来实现每秒 100,000 个请求的吞吐量。您还可以拥有一个事件驱动线程,它会在等待请求完成之前发送许多请求,而不是只发送一个请求。