Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to extend YCSB to support multiple column families when load RocksDB interface #1701

Open
niuniuniu14 opened this issue Mar 22, 2024 · 2 comments

Comments

@niuniuniu14
Copy link

When testing the performance of Rocksdb with multiple column families, I used four clients to load workloads on Rocksdb and wrote a script to execute four commands in parallel. The content is as follows:
image

But only one command can be executed, and other commands cannot be executed due to resource-locked issues when initing a DB. The terminal prompts an error message as follows:
image

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.

Should I make modifications against init() and clean up() methods inYCSB/core/src/main/java/site/ycsb/rocksdb/RocksDBClient.java (for example, using the CAS directive form————ReentrantLock class to reconstruct locks to RocksDBClient.class rather than synchronization primitives)?

@niuniuniu14
Copy link
Author

I encountered this issue when I try to extend YCSB to support Multi-column families for rocksdb. After modifying the key generation policy implemented in YCSB, this issue is solved

@ruiming-lu
Copy link

Hi @niuniuniu14 , can you share more details on this? Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants