When testing the performance of Rocksdb with multiple column families using YCSB, I used four clients to load workloads on Rocksdb and wrote a script to execute four commands in parallel. The content is as follows: enter image description here But only one command can be executed, and other commands cannot be executed due to resource locked issues when initting a DB. The terminal prompts an error message as follows: enter image description here Is this error message indicating that multiple instances are using the same database path, and a database path can only be accessed by one instance? As far as I know, Rocksdb supports multi-threaded parallel access to a DB. I guess YCSB has imposed restrictions on Rocksdb, but I don't know how to modify this restriction.
In YCSB/core/src/main/java/site/ycsb/ClientThread.java, init() and clean up() method both use synchronization primitives to a RocksDBCLient class, should I make modifications here (for example, using the CAS directive form————ReentrantLock class to reconstruct locks to RocksDBClient.class? enter image description here enter image description here