It seems erocksdb has support for async_put and async_get and both methods seem to work (at last in my naive tests), so it there any good reasons disable these methods in erlang interface? I'd like to use'em in one of my project.
Policy basically we'd like to provide erlang public I/F that is corresponding with RocksDB I/F for clarity
however welcome to provide public I/F without any corresponding one if it's very useful (there is a possibility that your request get accepted)
async_(put|get) is not supposed to be published as external I/F but they exist to prevent the caller erlang scheduler thread from being blocked due to Disk I/O (an internal thread managed by erocksdb actually does Disk I/O and send the result to the caller erlang scheduler thread waiting for a reply)
As stated above, async_(put|get) doesn't do the actual Disk I/O so that they can't return the result whether it's succeeded or failed (and also the value stored in leveldb in case async_get). Obviously async_get is useless however there might be some needs for async_put if users don't take care the result
From the above reasons, we have not published those as public I/F.
It seems erocksdb has support for async_put and async_get and both methods seem to work (at last in my naive tests), so it there any good reasons disable these methods in erlang interface? I'd like to use'em in one of my project.