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

Support secondary instance with BlobDB #13296

Open
yunxiao3 opened this issue Jan 15, 2025 · 4 comments
Open

Support secondary instance with BlobDB #13296

yunxiao3 opened this issue Jan 15, 2025 · 4 comments

Comments

@yunxiao3
Copy link

In the RocksDB wiki (https://github.com/facebook/rocksdb/wiki/BlobDB), it is stated that BlobDB does not support secondary instances. However, the specific reason for this lack of support isn't clearly explained.

Based on my understanding, due to the multi-version design of RocksDB, the primary instance cannot perceive references to some data (such as SST files and keys) that might be actively used by the secondary instance during compaction operations. This can lead to situations where data referenced by the secondary instance is inadvertently released by the primary instance. Blob files, which are also referenced by SST files, might be subject to the same issue.

I would like to know if there are other limitations, aside from the ones mentioned above, that prevent BlobDB from supporting secondary instances.

@yunxiao3
Copy link
Author

I would like to understand the specific reasons why BlobDB does not support secondary instances and determine whether simple modifications could enable the simultaneous use of BlobDB and secondary instances.

@yunxiao3 yunxiao3 changed the title Does the BlobDB of rocksdb still not support secondary instance? Does the BlobDB still not support secondary instance? Jan 15, 2025
@ltamasi
Copy link
Contributor

ltamasi commented Jan 26, 2025

This feature combination is indeed not supported at the moment. The main issue (there might be others) is that the secondary instance functionality relies on the secondary having open file descriptors for all data files, which on POSIX systems allows the secondary to keep using files deleted by the primary. Currently, max_open_files==-1 guarantees this for SSTs but not blob files.

@ltamasi ltamasi changed the title Does the BlobDB still not support secondary instance? Support secondary instance with BlobDB Jan 26, 2025
@theolivenbaum
Copy link
Contributor

@ltamasi I saw in the docs that this limitation is planned to be dropped at some point. Do you've an idea if this is still the case and +- when that might happen?

@ltamasi
Copy link
Contributor

ltamasi commented Jan 27, 2025

We don't have any near-term plans to support this at the moment.

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

No branches or pull requests

3 participants