dynamodb可以处理哪些TPS?

时间:2018-12-19 02:39:15

标签: database amazon-web-services amazon-dynamodb bigdata

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

2 个答案:

答案 0 :(得分:1)

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

没有任何限制。默认情况下,每个表可提供的最大吞吐量为40,000个RCU(每秒读取)和40,000个WCU(每秒写入)。但这只是防止用户意外设置过多吞吐量的限制,您可以简单地要求将更高的限制应用于您的帐户。

答案 1 :(得分:1)

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

我不知道您如何配置可提供100 rps的设置。您可能还错误地测量了此吞吐量:您提到了线程。您是在谈论 client 线程吗?因为显然,如果您只有一个客户端线程,则根本不是在衡量吞吐量,而是等待时间:如果客户端线程发送一个请求并在发送下一个请求之前等待它被答复,则您的请求有10ms延迟(即使由于网络延迟),您只能在一个线程中执行100个延迟。但是您可能有1000个这样的线程实现了每秒100,000个请求的吞吐量。您还可以使用一个事件驱动线程,该线程在等待它们完成之前发送许多请求,而不仅仅是一个请求。