Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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
Java 在循环中调用cassandra insert/batch_mutate时,节俭会稳步增加_Java_Cassandra_Thrift - Fatal编程技术网

Java 在循环中调用cassandra insert/batch_mutate时,节俭会稳步增加

Java 在循环中调用cassandra insert/batch_mutate时,节俭会稳步增加,java,cassandra,thrift,Java,Cassandra,Thrift,我有一个java应用程序,它从一个分区的Oracle表(实际上是几列,大小大约为100G)中读取数据,并使用与分区数量相等的线程数加载到Cassandra集群中。监视进度的线程显示每个线程(插入的行@??ms/rec)的进度,如下所示: 问题是,无论我调用什么api方法(insert/batch_mutate)(从while循环内部),延迟都在稳步增加。正如您所看到的,它以小于10ms/rec的速度开始,并持续稳定地上升。猜猜原因是什么 PS:出于某些原因,我选择了原始的thrift客户端而不是

我有一个java应用程序,它从一个分区的Oracle表(实际上是几列,大小大约为100G)中读取数据,并使用与分区数量相等的线程数加载到Cassandra集群中。监视进度的线程显示每个线程(插入的行@??ms/rec)的进度,如下所示:

问题是,无论我调用什么api方法(insert/batch_mutate)(从while循环内部),延迟都在稳步增加。正如您所看到的,它以小于10ms/rec的速度开始,并持续稳定地上升。猜猜原因是什么

PS:出于某些原因,我选择了原始的thrift客户端而不是hector,我不能选择更高级别的客户端,除非这是唯一可用的解决方案。无论如何,我对这种奇怪的行为感到好奇

监控线程的样本输出

24@0 ms/rec, 135323@485 ms/rec, 131821@513 ms/rec, 155841@339 ms/rec, 243@0 ms/rec,                              226146@538 ms/rec, 0, 0, .
24@0 ms/rec, 135431@523 ms/rec, 131939@427 ms/rec, 156008@316 ms/rec, 243@0 ms/rec, 226247@553 ms/rec, 0, 0, .
24@0 ms/rec, 135534@535 ms/rec, 132052@506 ms/rec, 156172@345 ms/rec, 243@0 ms/rec, 226355@472 ms/rec, 0, 0, .
24@0 ms/rec, 135643@519 ms/rec, 132171@455 ms/rec, 156323@387 ms/rec, 243@0 ms/rec, 226464@492 ms/rec, 0, 0, .
24@0 ms/rec, 135735@498 ms/rec, 132273@514 ms/rec, 156466@355 ms/rec, 243@0 ms/rec, 226561@508 ms/rec, 0, 0, .
24@0 ms/rec, 135858@474 ms/rec, 132404@455 ms/rec, 156630@330 ms/rec, 243@0 ms/rec, 226676@533 ms/rec, 0, 0, .

为什么不构建循环中的所有插入,然后尝试“batch\u mutate”呢? 我猜性能会更好,并且您不需要Hector来使用“batch_mutate”(也可以在节俭、较低级别的实现中使用)。
也许是因为赫克托的实施。

嗨,谢谢你的回复。我不知道batch_mutate可以用于一次对一组记录进行变异。我今天去看医生。如果你有一个链接,请在这里发布。要求太多的帮助,但一个示例代码片段将不胜感激。:)您好,这对我很有用(不要担心日文评论,这很容易理解):