Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra二进制协议可扩展性_Cassandra_Cassandra 2.0_Cql3_Cassandra Cli - Fatal编程技术网

Cassandra二进制协议可扩展性

Cassandra二进制协议可扩展性,cassandra,cassandra-2.0,cql3,cassandra-cli,Cassandra,Cassandra 2.0,Cql3,Cassandra Cli,我与Cassandra(v1.2、v2.0、v2.1)合作了相当长的一段时间。 早些时候,我看到了Cassandra的写可伸缩性(v1.2,v2.1),其中包含5个节点的Thrift协议。我试图评估Cassandra(2.1)二进制协议的批处理写可伸缩性 我们看到Cassandra新协议比节俭协议具有更好的性能。 令人惊讶的是,我发现Cassandra不能很好地使用带有批处理的二进制协议进行扩展。我们已经进行了足够次数的以下试验: a) 各种批量大小,如:1001000,…10000 b) 堆外

我与Cassandra(v1.2、v2.0、v2.1)合作了相当长的一段时间。 早些时候,我看到了Cassandra的写可伸缩性(v1.2,v2.1),其中包含5个节点的Thrift协议。我试图评估Cassandra(2.1)二进制协议的批处理写可伸缩性

我们看到Cassandra新协议比节俭协议具有更好的性能。 令人惊讶的是,我发现Cassandra不能很好地使用带有批处理的二进制协议进行扩展。我们已经进行了足够次数的以下试验:

a) 各种批量大小,如:1001000,…10000

b) 堆外可记忆材料

c) 不同数量的客户端(我们使用的是YCSB客户端)

d) 写入时间分别为5秒和10秒

例如。 3个节点、5个节点和10个节点的写入吞吐量没有太大差异

模式{UUID,DateComponentOfTimestamp,时间戳,浮点值} 前两列构成一个键

我也在物理集群设置和AWS EC2实例上试用过。 我看到很多实验是用单节点设置二进制协议完成的

是否有任何已知的基准(内部或外部)可用于二进制协议的可伸缩性(有批处理和无批处理)

我错过了什么,在这方面有人能给我指点吗

谢谢,
Arun

您的批是否写入多个分区(在您的情况下,在批中插入不同的uuid)?这可以解释为什么在添加节点时没有看到太多的性能改进,因为写入可能需要接触所有节点,这会给协调器带来大量工作。你能偶然分享一下你的代码吗?YCSB的cassandra代码使用thrift,很好奇您是否编写了自己的客户端或使用了一些CQL实现(即:)关于本机协议批处理的好文章,值得一读:我们使用的是您提到的链接提供的CQL实现。我们看到数据分布是一致的,我们使用的是Murmer3分区器。我不明白你关于写入多个分区的观点。我们将executeAsync()与batchstatement一起使用,并将其交给cassandra处理,就像YCSB客户端所做的那样。我们还尝试了记录和未记录的批处理语句。我遗漏了什么吗?我明白了,我们不能用同样的术语来称呼“批次”。我提供的链接在同一个键中插入/更新许多列。这实际上被视为1次插入操作。在CQL中,有一个“BatchStatement”的概念,其中多个语句作为一个批处理,其中可能会进入多个分区,这需要接触多个节点(这会降低性能)。是的,事实上,在同一批中,我们有多个具有不同分区键的语句,关于性能降低,您可能是对的。我们现在将对此进行评估并进行更正(在单个批处理中使用相同的分区键语句),并将让您知道这是否解决了问题。此后,我将分享YCSB代码的jist。