Я использую приведенную ниже зависимость для RocksDb.
rocksdbjni »3.5.1
Ниже кода я звоню из нескольких потоков.
public static void test(){
try {
RocksDB.loadLibrary();
RocksDB rocksDB = RocksDB.open("C:\\Users\\Downloads\\db");
if(rocksDB.get("abc".getBytes()) == null){
rocksDB.put("abc".getBytes(),"cde".getBytes());
}else{
System.out.print(new String(rocksDB.get("abc".getBytes())));
}
rocksDB.close();
} catch (RocksDBException e) {
e.printStackTrace();
}
}
При параллельном вызове я получаю " org.rocksdb.RocksDBException: не удалось создать файл блокировки: C: \ Users \ Downloads \ db / LOCK: процесс не может получить доступ к файлу, поскольку он используется другим процессом."но когда я ставлю блокировку (или синхронизированный метод) на приведенный выше код, он работает нормально.
Я хочу писать параллельно в RocksDB.
Спасибо.