RocksDb 对事务的 Java API 支持

问题描述

RocksJavaAPI 是否支持事务?我看到 JAR 中有一个 Transaction DB 类。我无法在事务 Db 类上执行开始事务。

RocksDB db = TransactionDB.open(options,"/Users/jagannathan/Desktop/My Files/db/rocksdb")

我无法执行 db.beginTransaction,因为此类方法不可用。任何有关如何在 Java 中完成的指针表示赞赏。

解决方法

您需要使用不同的打开方法。您当前使用的是基类 (RocksDB) 的 open 方法。

使用:

public static TransactionDB open(Options options,TransactionDBOptions transactionDbOptions,java.lang.String path)

public static TransactionDB open(DBOptions dbOptions,java.lang.String path,java.util.List<ColumnFamilyDescriptor> columnFamilyDescriptors,java.util.List<ColumnFamilyHandle> columnFamilyHandles)

获取一个 TransactionDB 对象。然后您可以使用此对象调用 #beginTransaction,它将返回一个 Transaction 对象。然后可以像 RocksDB 一样使用此事务,您可以在其中放置、删除等,并在完成后提交。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...