Cassandra 绑定语句和内存泄漏

Cassandra Bound Statements and Memory Leaking

我正在使用 Cassandra 准备好的语句在使用 Datastax Cassandra 的 Scala 应用程序中执行我的查询 Java driver.

我们有条件逻辑来检查绑定语句是否应该根据 object 的某些内部状态执行。达到这个效果的东西:

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

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

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

感谢您的帮助。

bind() 方法在每次调用时都会生成一个新的 BoundStatement 实例,而 session.execute() 不会保留对它的任何引用,因此它将被 GC 处理。这里没有内存泄漏的风险。