对于数据库情况下的延迟和吞吐量,我有点困惑。
我的理解是,延迟表示执行单个请求所需的时间(例如insert或select),而吞吐量则表示在一定时间内执行这些操作的次数(例如每秒插入多少次)。
如果我的理解是正确的话,难道不应该总是把两者联系在一起吗?如果延迟减少,吞吐量应该增加,反之亦然?那么,低延迟的数据库应该具有高吞吐量吗?
我想到的是,许多请求可以并行执行,这可能导致这样一个事实:即使是一个请求也很慢(延迟较高)--一般来说,数据库可以很好地执行(可以并行处理大量请求,特别是当我们讨论可扩展分布式数据库时)。这就是重点吗?
我从读到卡桑德拉的文章开始思考这个问题:
卡桑德拉还高度重视性能。2012年,研究NoSQL系统的多伦多大学研究人员得出结论:“在可伸缩性方面,在我们的实验中有一个明显的赢家。在所有实验中,卡桑德拉实现了最大节点数的最高吞吐量”,尽管“这是以高写入和读取延迟为代价的。”
读写速度慢,但是由于它是分布式的,所以它实现了高吞吐量吗?
发布于 2018-01-24 17:17:16
你的直觉很接近,但忽略了并发性。
您可以具有中等/高延迟、高吞吐量、大规模并发系统--任何单独的请求在Cassandra上可能比在其他系统上花费的时间更长,但您可以并行运行更多的请求,从而使总吞吐量更高。在Cassandra的情况下,SEDA体系结构允许每台机器多个并发请求(通常为每台机器128个或~256个读和写线程),而分布式特性允许您扩展到许多机器(数千台机器上的单个集群)。
https://dba.stackexchange.com/questions/195149
复制相似问题