最近我们对一些Cassandra集群进行了压力测试,比较了一致性水平,准备/未准备语句和同步/异步执行模式的所有组合的性能,并且在每一个配置中,最高性能始终是异步运行的(任意/一个)非预处理语句的组合!!
那里有一些有意义的位,任何/一个一致性级别的限制性较小,因此应该是最快的。异步运行查询,因此利用并行计算应该比顺序运行更快,但是准备好的和未准备好的语句呢?
我们一直在阅读和听到(博客,峰会,福音传播者......),我们应该尽可能地支持准备好的声明,但这种结果令人困惑......
为了给你一些背景知识,我们使用了两种不同的工具(一种内部构建和cassandra压力),两者都投入相同的结果。
有没有人遇到过这个?这是解释?我们缺少什么?
此致
编辑:
答案 0 :(得分:2)
在查看了您的数据后,我认为您在此处看到的不是群集上的限制,而是运行测试的服务器上的限制。如果您正在测试3节点Cassandra集群,则可能需要2-3倍的客户端服务器产生负载。您可以尝试通过增加线程数来最大化每个客户端的使用量,但是您将达到限制。
通常情况下,如果您在cassandra-stress测试中获得平坦的结果,请查看测试中的节点。如果它们大部分都是无聊的,那么增加客户端(或线程)的数量,直到节点受到强调。 :)