Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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

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
Java Cassandra Sync和Async,哪一个返回结果集更快?_Java_Cassandra_Driver_Datastax - Fatal编程技术网

Java Cassandra Sync和Async,哪一个返回结果集更快?

Java Cassandra Sync和Async,哪一个返回结果集更快?,java,cassandra,driver,datastax,Java,Cassandra,Driver,Datastax,我正在对卡桑德拉做一些测试。该案例描述如下: 先决条件:1个Cassandra服务器,一个具有复杂主键(username,id)的表,选择查询如下:“select*from table_name where username='abc';结果集是16行的集合 案例1:在DevCenter上执行查询,需要1676毫秒才能完成 案例2:使用“session.execute(statement)”在Java驱动程序上同步执行查询,需要441毫秒完成 案例3:使用中介绍的异步解决方案在Java驱动程序

我正在对卡桑德拉做一些测试。该案例描述如下:

  • 先决条件:1个Cassandra服务器,一个具有复杂主键(username,id)的表,选择查询如下:“select*from table_name where username='abc';结果集是16行的集合
  • 案例1:在DevCenter上执行查询,需要1676毫秒才能完成
  • 案例2:使用“session.execute(statement)”在Java驱动程序上同步执行查询,需要441毫秒完成
  • 案例3:使用中介绍的异步解决方案在Java驱动程序上执行查询,需要1121毫秒才能完成

有人告诉我在什么情况下同步/异步更快吗?

我想说的是,同步/异步方法不是关于更快或更慢,而是关于客户端的资源利用率。异步-对于长时间运行的查询没有长时间阻塞。同步-阻塞,但是对于快速查询来说可以很好。异步方法可能会更有效要求使用其他编程技术(未来、回调…),在某些编程语言中,它在本机上比在其他语言中得到更好的支持。

仅对一个查询使用异步方法是没有价值的,但它将为大量查询提供性能提升,因为您的代码不会等待前一个查询执行下一个查询