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

时间:2017-12-06 10:11:35

标签: java cassandra driver datastax

我正在对Datastax Cassandra进行一些测试。案例描述如下:

  • 先决条件:1 Cassandra Server,一个包含复杂主键(username,id)的表,Selection查询如下:“select * from table_name where username ='abc';结果集是16行的集合
  • 案例1:在DevCenter上执行查询,完成
  • 需要1676 ms
  • 案例2:使用“session.execute(statement)”同步执行Java Driver上的查询,完成时间为441 ms
  • 案例3:使用https://docs.datastax.com/en/developer/java-driver/3.3/manual/async/中介绍的异步解决方案在Java Driver上执行查询,完成时间为1121 ms

是否有人告诉我同步/异步更快的情况?

2 个答案:

答案 0 :(得分:0)

我会说同步/异步方法不是更快或更慢,而是更多关于客户端的资源利用率。异步 - 对长时间运行的查询不会长时间阻止。同步 - 阻止,但可以很好地进行快速查询。异步方法可能需要使用其他编程技术(Futures,callbacks ..),在某些编程语言中,它本身比其他语言支持更好。

答案 1 :(得分:0)

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