如何测试Cassandra性能?

Ser*_*gey 3 testing performance cassandra

我想测试几个Cassandra驱动程序(如thrift和avro)?

什么测试最好定义大多数性能连接方案?

(大多数表演可能意味着 - 最快的写作/阅读).

jer*_*ans 8

首先,当谈到驱动程序时,我不会担心"Thrift"或"Avro"之类的东西,因为底层的RPC机制是一个实现细节.也就是说,值得注意的是,Avro RPC是一个短暂的实验,并且不再存在于任何现代版本的Cassandra中.

您选择的Cassandra> = 0.8.0版本的接口可以归结为RPC接口(Thrift)或CQL的第三方包装器.

CQL是一种类似于SQL的查询语言,它使编写应用程序变得更加简单.如果你刚刚开始,我肯定会建议你去研究它.

对于RPC包装器,可以在Cassandra wiki的ClientOptions页面上找到当前(ish)选项列表,并且CQL驱动程序托管在Google Code/Apache Extras(标记为Cassandra)上.

至于这两个接口中哪一个最快,简短的答案是:Thrift RPC更快. 但是,差异非常小(~10%),并且仅限于非索引插入(所有其他操作在性能上相当).此外,与卡桑德拉1.1正式发布(3月份由于出),CQL将支持预处理语句,这使得CQL更快一刀切,高达16%的速度.

对于某些与当前版本的cassandra相关的CQL/Thrift性能结果,请参阅此帖子.对于适用于即将发布的1.1版本的结果,请参阅此Cassandra JIRA问题附带的结果(向下滚动).

话虽这么说,您应该始终在尽可能接近生产设置的环境中进行自己的测试,使用最接近您希望从应用程序中看到的操作的混合操作.

  • 即使使用C扩展,Ruby的thrift处理速度也非常慢.假设CQL-over-thrift遇到同样的瓶颈(我认为没有理由不这样做),你的选择包括1.开发非Thrift CQL传输(https://issues.apache.org/jira/browse/CASSANDRA -2478),2.尝试优化C扩展,3.切换到不同的语言,或4.抛出硬件问题.到目前为止,大多数人似乎都在混合使用3.和4. :) (2认同)