Skip to content

Support building + linking with folly + gflags + coroutines #62

@x86pup

Description

@x86pup

When building with io_uring, typically you might want to enable RocksDB's set_async_io apart of your ReadOptions for multi_get. However the problem is you require coroutines support for this with multi_get to be any useful in practice. And coroutines is only apart of folly.

https://github.com/facebook/rocksdb/wiki/Asynchronous-IO#configuration

In addition, we found a possible bug with RocksDB's multi_get + io_uring + set_async_io, and we think disabling optimize_multiget_for_io would mitigate it, but because it's not exposed in the FFI we can't use it, and even then it's required that optimize_multiget_for_io is using coroutines. So perhaps this would be "prep work for exposing it in the FFI".

https://github.com/facebook/rocksdb/blob/b75438f9860e3cff5e713917ed22e0ac394a758c/db/version_set.cc#L2622-L2625

I've made a very dirty way of doing this at https://github.com/girlbossceo/rust-rocksdb-zaidoon1/commit/9ecb597d966efb37ed96f4cfe3f09165013fd14a (I have not tested if this even works in a Rust project) if you're interested.

gflags is also required apart of folly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions