我认为NoSQL数据库(如Cassandra或DynamoDB )可以处理10,000个QPS或TPS。但是,当我最近查看一些DynamoDB配置时,我经常看到不到100个TPS。这是一个线程的100个TPS还是所有线程的TPS?我错过什么了吗?搜索AWS文档,但没有找到类似问题的解决方案。谢谢
发布于 2018-12-19 11:00:54
NoSQL数据库(如Cassandra、Scylla或DynamoDB )的一个要点是,它们是可扩展的--它们使用的节点集群可以允许(理论上)每秒无限数量的请求。因此,根据集群的大小(以及每个节点的大小),您可以处理100个rps、10000 rps甚至10,000,000 rps。在软件即服务DynamoDB中,您看不到服务器后面的实际集群,而是需要“提供”每秒允许的请求数量。
我不知道你是如何提供给你100个rps的设置的。您可能还测量了错误的吞吐量:您提到了线程。您是在说客户端线程吗?因为很明显,如果您只有一个客户机线程,那么您根本没有测量吞吐量,而是测量延迟:如果客户端线程发送一个请求并在发送下一个请求之前等待回复,那么如果您的请求有10 do延迟(即使是由于网络延迟),则只能从该一个线程执行100次请求。但是这些线程中的1000个可以达到每秒10万个请求的吞吐量。您还可以有一个事件驱动线程,它在等待它们完成之前发送许多请求,而不仅仅是一个请求。
发布于 2018-12-19 08:57:56
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html
没有任何限制。默认情况下,每个表可以提供的最大吞吐量是40,000 RCU(每秒读取)和40,000 WCU(每秒写入)。但这只是一个限制,以防止用户意外地提供过多的吞吐量,您可以简单地向您的帐户申请一个更高的限制。
https://stackoverflow.com/questions/53843829
复制相似问题