RocksDB IO错误:锁定db/lock:没有可用的锁

RocksDB IO error: lock db/LOCK: No locks available

本文关键字:错误 IO 锁定 db RocksDB lock      更新时间:2023-10-16

我正在开发一个多线程服务器,用于存储和读取数据库中的信息。数据库是用RocksDB实现的。

我遇到的问题是,当我一次从多个线程访问数据库时,会出现错误。

通常情况下,它意味着数据库在使用后没有被删除,但现在它没有意义了,当然它没有删除,它正在被另一个线程使用。

我知道数据库本身是按顺序访问的,所以从技术上讲,你永远不会让两个线程同时读取它,但至少其中一个线程应该等到锁释放后再访问它,然后

有人知道会发生什么吗?

问题是,我在不同的线程中有两个具有相同数据库名称的rocksdb::DB*对象,并且同时从两个线程打开数据库