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 处理。这里没有内存泄漏的风险。
我正在使用 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 处理。这里没有内存泄漏的风险。