Cassandra绑定语句和内存泄漏

时间:2016-04-05 12:34:07

标签: java scala memory-leaks cassandra cql

我使用Cassandra预处理语句使用Datastax Cassandra Java驱动程序在Scala应用程序中执行查询。

我们有条件逻辑来检查并查看绑定语句是否应该根据对象的某个内部状态执行。有这样的效果:

def updateDatabase(x: String, y: String, z: String) = {
   val bound = statement.bind(x,y,x)     

   if(sequence_nr < current){
      session.execute(bound)
   }
}

这是否会在我们的Scala应用程序或Cassandra中引入内存泄漏?我倾向于拒绝,但不想做出这样的假设,因为我不能完全理解司机在bind电话的幕后做了什么。

我很感激帮助。

1 个答案:

答案 0 :(得分:3)

bind()方法会在每次调用时生成BoundStatement的新实例,而session.execute()不会对其进行任何引用,因此它将被GC编辑。这里没有内存泄漏的风险。