【问题标题】:Cassandra Session vs Cluster What to Share?Cassandra 会话与集群 分享什么?
【发布时间】:2015-04-30 14:54:45
【问题描述】:

考虑一下 Cassandra 的 Session 和 Cluster 类(Java 驱动程序)我想知道有什么区别。在 Hibernate 中,每次都会创建一个会话并共享会话工厂。

从许多来源我了解到,它被认为是创建一个会话并在多个线程之间共享。

我确实觉得这有点古玩。我本来希望我为每个线程或正在进行的操作/任务创建一个会话。

  • 这样做有问题吗?
  • 性能影响是什么?会话线程安全吗?
  • 我是否会在较大的结果集上遇到游标问题(或者 cassandra 是否没有游标?)
  • 假设 Session 是线程安全的是否安全,或者是否存在我应该注意的边缘情况?

【问题讨论】:

    标签: java session cassandra


    【解决方案1】:

    在传统的 RDBMS 中,会话 通常指的是事务上下文,并且许多实现不是线程安全的。同时,session 通常是在某种连接池之上实现的,连接的终止(通过错误)也会终止会话。

    在 Cassandra 中,实际上并没有针对多个调用的事务上下文,因此一旦连接到 keyspace会话 即可共享且无需重新建立。此外,驱动程序已经处理了重新连接和连接池,因此 session 不依赖于连接。

    最后,针对会话准备的语句被缓存,重新创​​建会话效率低下,必须不断地重新准备语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-22
      • 2016-08-14
      • 2018-12-13
      • 2019-09-07
      • 1970-01-01
      • 2018-06-25
      • 2017-11-02
      • 1970-01-01
      相关资源
      最近更新 更多