Open iSynaptic opened 5 years ago
I believe addressing this issue is critical before we can label this library v1.0
. I'm sure there are other similar issues, but this is one of them.
I'd like to bump the importance of this issue. In particular, enabling settings equivalent to PrepareForBulkLoad
is important to my use case.
@rw is there any setting in PrepareForBulkLoad
that is unavailable now, or you rather need a convenience method to do it it in one pass?
Some missing options:
write_buffer_manager
(#587)optimize_filters_for_memory
(#807)parallel_threads
(#515)CompactOnDeletionCollectorFactory
(#718)compaction_options_fifo.allow_compaction
(#758) wal_compression
(#778)SizeApproximationOptions
(#597)use_delta_encoding
PlainTableFactoryOptions
(#779)OptimisticTransactionDBOptions
(https://github.com/facebook/rocksdb/issues/11703)
validate_policy
occ_lock_buckets
Also, format_version
now defaults to 5 instead of 2, but rust-rocksdb still documents it as 2.
We should probably reconsider making FFI public (#108). The lack of functionality in binding is a frustrating thing.
The
Options
,ReadOptions
, andWriteOptions
structures do not exposes setters for many of the underlying settings. The underlying options object exposes over 150 settings, many of which are necessary for tuning for different scenarios. Also, many of the settings apply to aColumnFamily
and some to theDB
. Some work should be done to expose more of these settings and place them in an appropriately scoped*Options
struct.Available FFI functions for reference:
Header Files for reference:
Example LOG output showing many of the options (if we upgrade to a newer RocksDB library, there may be even more options):