最近,我们对一些Cassandra集群进行了压力测试,比较了一致性级别、准备好的/未准备好的语句和同步/异步执行模式的所有组合的性能,在每种配置中,最高的性能总是异步运行的(任何/一个)未准备好的语句的组合!!
对于有意义的位,任何/一个一致性级别的限制都较少,因此应该是最快的。此外,异步运行查询,因此利用并行计算应该比按顺序运行它们更快,但是准备好的语句和非准备好的语句呢?
我们总是读到和听到(博客、峰会、福音传道者…),我们应该尽可能支持准备好的陈述,而不是没有准备好的陈述,但这一结果令人困惑…
为了给你一点背景知识,我们使用了两种不同的工具(一种是内部构建的,另一种是cassandra-stress ),它们都产生了相同的结果。
有人以前遇到过这种情况吗?哪个是解释?我们遗漏了什么?
问候
编辑:
在查看了您的数据之后,我认为您在这里看到的不是对集群的限制,而是对运行测试的服务器的限制。如果您正在测试 3 节点 Cassandra 群集,则可能需要产生负载的客户端服务器数量的 2-3 倍。您可以尝试通过增加线程数来最大化每个客户端上的使用量,但您将达到限制。
一般来说,如果您在cassandra压力测试中获得平线结果,请查看被测节点。如果他们大多感到无聊,请增加客户端(或线程)的数量,直到节点受到压力。:)
引用这篇文章: http://www.datastax.com/dev/blog/4-simple-rules-when-using-the-datastax-drivers-for-cassandra Cassandra的存储引擎进行了优化,以避免存储不必要的空列,但是当使用预准备语句时,那些未提供的参数会导致空值被传递给Cassandra(从而存储墓碑)。目前,这种情况的唯一解决方法是为最常见
我正在为python使用datastax cassandra驱动程序。 有争议的代码部分是: 结果是: 我不确定括号周围的括号来自哪里,一旦我删除了括号,prepare 语句就会起作用。 想法?
问题内容: 不久前开始使用PDO准备的语句,据我了解,它为您完成了所有转义/安全性工作。 例如,假设$ _POST [‘title’]是一个表单字段。 这真的安全吗?我还需要做其他事情吗?我还需要考虑什么? 谢谢。 问题答案: 严格来说,实际上不需要转义,因为参数值永远不会插值到查询字符串中。 查询参数的工作方式是在调用时将查询发送到数据库服务器,然后在调用时将参数值发送到数据库服务器。因此,它们
我已经开始使用DataTax PHP驱动程序学习PHP中的Cassandra,我必须使用准备好的语句在CQL中设置映射的值,查询是: 提交的“属性”是MAP类型,因此我尝试将其作为字符串传递: 在PHP中: 但是我得到了错误“java.lang.IllegalArgumentException”,对于准备好的语句中的映射或列表之类的集合,哪种语法是正确的?
请看下面的代码,让我知道我哪里做错了? 使用: DSE版本-5.1.0 172.31.16.45:9042连接到测试群集。[cqlsh 5.0.1|Cassandra3.10.0.1652|DSE 5.1.0|CQL规范3.4.4|本地协议v4]使用HELP寻求帮助。 谢谢 斯卡拉 斯卡拉 斯卡拉 我在这里什么都得不到?甚至没有错误。
我正在使用Cassandra作为我的一个应用程序。我想使用Cassandra通过cql提供的Prepared语句。如果我准备了一个查询,这是否在所有节点中都准备好了?。 任何帮助是值得赞赏的。