ExRocket Option Reference

View Source

This is the canonical public option inventory for ExRocket 0.5.0. The CI option inventory test compares every key below with the native decoders. Unknown keys return {:error, {:unknown_option, key}}; malformed values return {:error, {:invalid_option, key}} before a database is opened or mutated.

Database option keys intentionally mirror the maintained rust-rocksdb API. There are no shortened aliases such as max_open_files or write_buffer_size. set_use_fsync chooses RocksDB's synchronization mechanism; it does not make each write synchronous. Use write_batch/3 with %{sync: true} for a synchronous write boundary.

Database And Column-Family Options

All keys are optional. nil below means the option is not applied and RocksDB's native default remains in effect. ExRocket's only explicit database default is create_if_missing: true.

String constraints:

  • Compression: None, Snappy, Zlib, Bz2, Lz4, Lz4hc, or Zstd (case-insensitive).
  • set_log_level: Debug, Info, Warn, Error, Fatal, or Header.
  • set_compaction_style: Level, Universal, or Fifo.
  • set_wal_recovery_mode: TolerateCorruptedTailRecords, AbsoluteConsistency, PointInTime, or SkipAnyCorruptedRecord.
  • merge_operator: counter_merge_operator, erlang_merge_operator, or bitset_merge_operator.
  • set_max_bytes_for_level_multiplier_additional: comma-separated i32 values.
  • set_ratelimiter: exactly three comma-separated integers representing bytes per second, refill period in microseconds, and fairness.
KeyElixir value typeExRocket defaultNative mapping
create_if_missingboolean()trueOptions::create_if_missing
create_missing_column_familiesboolean()nilOptions::create_missing_column_families
set_error_if_existsboolean()nilOptions::set_error_if_exists
set_paranoid_checksboolean()nilOptions::set_paranoid_checks
increase_parallelisminteger()nilOptions::increase_parallelism
optimize_level_style_compactionnon_neg_integer()nilOptions::optimize_level_style_compaction
optimize_universal_style_compactionnon_neg_integer()nilOptions::optimize_universal_style_compaction
set_compression_typeString.t()nilOptions::set_compression_type
set_bottommost_compression_typeString.t()nilOptions::set_bottommost_compression_type
set_zstd_max_train_bytesinteger()nilOptions::set_zstd_max_train_bytes
set_compaction_readahead_sizenon_neg_integer()nilOptions::set_compaction_readahead_size
set_level_compaction_dynamic_level_bytesboolean()nilOptions::set_level_compaction_dynamic_level_bytes
set_optimize_filters_for_hitsboolean()nilOptions::set_optimize_filters_for_hits
set_delete_obsolete_files_period_microsnon_neg_integer()nilOptions::set_delete_obsolete_files_period_micros
set_max_open_filesinteger()nilOptions::set_max_open_files
set_max_file_opening_threadsinteger()nilOptions::set_max_file_opening_threads
set_use_fsyncboolean()nilOptions::set_use_fsync
set_db_log_dirString.t()nilOptions::set_db_log_dir
set_log_levelString.t()nilOptions::set_log_level
set_bytes_per_syncnon_neg_integer()nilOptions::set_bytes_per_sync
set_wal_bytes_per_syncnon_neg_integer()nilOptions::set_wal_bytes_per_sync
set_writable_file_max_buffer_sizenon_neg_integer()nilOptions::set_writable_file_max_buffer_size
set_allow_concurrent_memtable_writeboolean()nilOptions::set_allow_concurrent_memtable_write
set_enable_write_thread_adaptive_yieldboolean()nilOptions::set_enable_write_thread_adaptive_yield
set_max_sequential_skip_in_iterationsnon_neg_integer()nilOptions::set_max_sequential_skip_in_iterations
set_use_direct_readsboolean()nilOptions::set_use_direct_reads
set_use_direct_io_for_flush_and_compactionboolean()nilOptions::set_use_direct_io_for_flush_and_compaction
set_is_fd_close_on_execboolean()nilOptions::set_is_fd_close_on_exec
set_table_cache_num_shard_bitsinteger()nilOptions::set_table_cache_num_shard_bits
set_target_file_size_multiplierinteger()nilOptions::set_target_file_size_multiplier
set_min_write_buffer_numberinteger()nilOptions::set_min_write_buffer_number
set_max_write_buffer_numberinteger()nilOptions::set_max_write_buffer_number
set_write_buffer_sizenon_neg_integer()nilOptions::set_write_buffer_size
set_db_write_buffer_sizenon_neg_integer()nilOptions::set_db_write_buffer_size
set_max_bytes_for_level_basenon_neg_integer()nilOptions::set_max_bytes_for_level_base
set_max_bytes_for_level_multiplierfloat()nilOptions::set_max_bytes_for_level_multiplier
set_max_manifest_file_sizenon_neg_integer()nilOptions::set_max_manifest_file_size
set_target_file_size_basenon_neg_integer()nilOptions::set_target_file_size_base
set_min_write_buffer_number_to_mergeinteger()nilOptions::set_min_write_buffer_number_to_merge
set_level_zero_file_num_compaction_triggerinteger()nilOptions::set_level_zero_file_num_compaction_trigger
set_level_zero_slowdown_writes_triggerinteger()nilOptions::set_level_zero_slowdown_writes_trigger
set_level_zero_stop_writes_triggerinteger()nilOptions::set_level_zero_stop_writes_trigger
set_compaction_styleString.t()nilOptions::set_compaction_style
set_unordered_writeboolean()nilOptions::set_unordered_write
set_max_subcompactionsnon_neg_integer()nilOptions::set_max_subcompactions
set_max_background_jobsinteger()nilOptions::set_max_background_jobs
set_disable_auto_compactionsboolean()nilOptions::set_disable_auto_compactions
set_memtable_huge_page_sizenon_neg_integer()nilOptions::set_memtable_huge_page_size
set_max_successive_mergesnon_neg_integer()nilOptions::set_max_successive_merges
set_bloom_localitynon_neg_integer()nilOptions::set_bloom_locality
set_inplace_update_supportboolean()nilOptions::set_inplace_update_support
set_inplace_update_locksnon_neg_integer()nilOptions::set_inplace_update_locks
set_max_bytes_for_level_multiplier_additionalString.t()nilOptions::set_max_bytes_for_level_multiplier_additional
set_max_write_buffer_size_to_maintaininteger()nilOptions::set_max_write_buffer_size_to_maintain
set_enable_pipelined_writeboolean()nilOptions::set_enable_pipelined_write
set_min_level_to_compressinteger()nilOptions::set_min_level_to_compress
set_report_bg_io_statsboolean()nilOptions::set_report_bg_io_stats
set_max_total_wal_sizenon_neg_integer()nilOptions::set_max_total_wal_size
set_wal_recovery_modeString.t()nilOptions::set_wal_recovery_mode
enable_statisticsboolean()nilOptions::enable_statistics
set_stats_dump_period_secnon_neg_integer()nilOptions::set_stats_dump_period_sec
set_stats_persist_period_secnon_neg_integer()nilOptions::set_stats_persist_period_sec
set_advise_random_on_openboolean()nilOptions::set_advise_random_on_open
set_use_adaptive_mutexboolean()nilOptions::set_use_adaptive_mutex
set_num_levelsinteger()nilOptions::set_num_levels
set_memtable_prefix_bloom_ratiofloat()nilOptions::set_memtable_prefix_bloom_ratio
set_max_compaction_bytesnon_neg_integer()nilOptions::set_max_compaction_bytes
set_wal_dirString.t()nilOptions::set_wal_dir
set_wal_ttl_secondsnon_neg_integer()nilOptions::set_wal_ttl_seconds
set_wal_size_limit_mbnon_neg_integer()nilOptions::set_wal_size_limit_mb
set_manifest_preallocation_sizenon_neg_integer()nilOptions::set_manifest_preallocation_size
set_skip_stats_update_on_db_openboolean()nilOptions::set_skip_stats_update_on_db_open
set_keep_log_file_numnon_neg_integer()nilOptions::set_keep_log_file_num
set_allow_mmap_writesboolean()nilOptions::set_allow_mmap_writes
set_allow_mmap_readsboolean()nilOptions::set_allow_mmap_reads
set_manual_wal_flushboolean()nilOptions::set_manual_wal_flush
set_atomic_flushboolean()nilOptions::set_atomic_flush
set_ratelimiterString.t()nilOptions::set_ratelimiter
set_max_log_file_sizenon_neg_integer()nilOptions::set_max_log_file_size
set_log_file_time_to_rollnon_neg_integer()nilOptions::set_log_file_time_to_roll
set_recycle_log_file_numnon_neg_integer()nilOptions::set_recycle_log_file_num
set_soft_pending_compaction_bytes_limitnon_neg_integer()nilOptions::set_soft_pending_compaction_bytes_limit
set_hard_pending_compaction_bytes_limitnon_neg_integer()nilOptions::set_hard_pending_compaction_bytes_limit
set_arena_block_sizenon_neg_integer()nilOptions::set_arena_block_size
set_dump_malloc_statsboolean()nilOptions::set_dump_malloc_stats
set_memtable_whole_key_filteringboolean()nilOptions::set_memtable_whole_key_filtering
set_enable_blob_filesboolean()nilOptions::set_enable_blob_files
set_min_blob_sizenon_neg_integer()nilOptions::set_min_blob_size
set_blob_file_sizenon_neg_integer()nilOptions::set_blob_file_size
set_blob_compression_typeString.t()nilOptions::set_blob_compression_type
set_enable_blob_gcboolean()nilOptions::set_enable_blob_gc
set_blob_gc_age_cutofffloat()nilOptions::set_blob_gc_age_cutoff
set_blob_gc_force_thresholdfloat()nilOptions::set_blob_gc_force_threshold
set_blob_compaction_readahead_sizenon_neg_integer()nilOptions::set_blob_compaction_readahead_size
set_prefix_extractor_prefix_lengthnon_neg_integer()nilOptions::set_prefix_extractor_prefix_length
merge_operatorString.t()nilmerge callback registration

Range-Iterator Read Options

KeyTypeDefaultMeaning
iterate_lower_boundString.t()nilRocksDB inclusive iterator lower bound.
iterate_upper_boundString.t()nilRocksDB exclusive iterator upper bound.

Binary range boundaries should normally be passed through the explicit from and to arguments of iterator_range/5; these two compatibility options retain their existing string contract.

Batch Write Options

KeyTypeDefaultMeaning
syncboolean()falseRequest a synchronous WAL flush before success.
disable_walboolean()falseDisable WAL for rebuildable bulk-load data.

sync: true with disable_wal: true is rejected as {:error, :invalid_write_options}.

Iterator-Take Options

KeyTypeDefaultMeaning
max_entries1..100_000requiredMaximum rows copied in one call.
max_bytes1..67_108_864noneMaximum combined key/value payload, except one oversized first row.

Malformed bounds return {:error, :invalid_iterator_options}. Byte limits exclude normal Erlang term overhead.