Name | Effect | Values |
block_cache = ( | block cache configuration options. | a set of related configuration options defined as follows. |
blkcache_eviction_aggression | seconds an unused block remains in the cache before it is evicted. | an integer between 1 and 7200 ; default 1800 . |
cache_on_checkpoint | cache blocks written by a checkpoint. | a boolean flag; default true . |
cache_on_writes | cache blocks as they are written (other than checkpoint blocks). | a boolean flag; default true . |
enabled | enable block cache. | a boolean flag; default false . |
full_target | the fraction of the block cache that must be full before eviction will remove unused blocks. | an integer between 30 and 100 ; default 95 . |
hashsize | number of buckets in the hashtable that keeps track of blocks. | an integer between 512 and 256K ; default 32768 . |
max_percent_overhead | maximum tolerated overhead expressed as the number of blocks added and removed as percent of blocks looked up; cache population and eviction will be suppressed if the overhead exceeds the threshold. | an integer between 1 and 500 ; default 10 . |
nvram_path | the absolute path to the file system mounted on the NVRAM device. | a string; default empty. |
percent_file_in_dram | bypass cache for a file if the set percentage of the file fits in system DRAM (as specified by block_cache.system_ram). | an integer between 0 and 100 ; default 50 . |
size | maximum memory to allocate for the block cache. | an integer between 0 and 10TB ; default 0 . |
system_ram | the bytes of system DRAM available for caching filesystem blocks. | an integer between 0 and 1024GB ; default 0 . |
type | cache location: DRAM or NVRAM. | a string; default empty. |
) | | |
cache_max_wait_ms | the maximum number of milliseconds an application thread will wait for space to be available in cache before giving up. Default will wait forever. | an integer greater than or equal to 0 ; default 0 . |
cache_overhead | assume the heap allocator overhead is the specified percentage, and adjust the cache usage by that amount (for example, if there is 10GB of data in cache, a percentage of 10 means WiredTiger treats this as 11GB). This value is configurable because different heap allocators have different overhead and different workloads will have different heap allocation sizes and patterns, therefore applications may need to adjust this value based on allocator choice and behavior in measured workloads. | an integer between 0 and 30 ; default 8 . |
cache_size | maximum heap memory to allocate for the cache. A database should configure either cache_size or shared_cache but not both. | an integer between 1MB and 10TB ; default 100MB . |
cache_stuck_timeout_ms | the number of milliseconds to wait before a stuck cache times out in diagnostic mode. Default will wait for 5 minutes, 0 will wait forever. | an integer greater than or equal to 0 ; default 300000 . |
checkpoint = ( | periodically checkpoint the database. Enabling the checkpoint server uses a session from the configured session_max . | a set of related configuration options defined as follows. |
log_size | wait for this amount of log record bytes to be written to the log between each checkpoint. If non-zero, this value will use a minimum of the log file size. A database can configure both log_size and wait to set an upper bound for checkpoints; setting this value above 0 configures periodic checkpoints. | an integer between 0 and 2GB ; default 0 . |
wait | seconds to wait between each checkpoint; setting this value above 0 configures periodic checkpoints. | an integer between 0 and 100000 ; default 0 . |
) | | |
checkpoint_cleanup = ( | periodically checkpoint cleanup the database. | a set of related configuration options defined as follows. |
method | control how aggressively obsolete content is removed by reading the internal pages. Default to none, which means no additional work is done to find obsolete content. | a string, chosen from the following options: "none" , "reclaim_space" ; default none . |
wait | seconds to wait between each checkpoint cleanup. | an integer between 60 and 100000 ; default 300 . |
) | | |
chunk_cache = ( | chunk cache reconfiguration options. | a set of related configuration options defined as follows. |
pinned | List of "table:" URIs exempt from cache eviction. Capacity config overrides this, tables exceeding capacity will not be fully retained. Table names can appear in both this and the preload list, but not in both this and the exclude list. Duplicate names are allowed. | a list of strings; default empty. |
) | | |
compatibility = ( | set compatibility version of database. Changing the compatibility version requires that there are no active operations for the duration of the call. | a set of related configuration options defined as follows. |
release | compatibility release version string. | a string; default empty. |
) | | |
debug_mode = ( | control the settings of various extended debugging features. | a set of related configuration options defined as follows. |
background_compact | if true, background compact aggressively removes compact statistics for a file and decreases the max amount of time a file can be skipped for. | a boolean flag; default false . |
checkpoint_retention | adjust log removal to retain the log records of this number of checkpoints. Zero or one means perform normal removal. | an integer between 0 and 1024 ; default 0 . |
configuration | if true, display invalid cache configuration warnings. | a boolean flag; default false . |
corruption_abort | if true and built in diagnostic mode, dump core in the case of data corruption. | a boolean flag; default true . |
cursor_copy | if true, use the system allocator to make a copy of any data returned by a cursor operation and return the copy instead. The copy is freed on the next cursor operation. This allows memory sanitizers to detect inappropriate references to memory owned by cursors. | a boolean flag; default false . |
cursor_reposition | if true, for operations with snapshot isolation the cursor temporarily releases any page that requires force eviction, then repositions back to the page for further operations. A page release encourages eviction of hot or large pages, which is more likely to succeed without a cursor keeping the page pinned. | a boolean flag; default false . |
eviction | if true, modify internal algorithms to change skew to force history store eviction to happen more aggressively. This includes but is not limited to not skewing newest, not favoring leaf pages, and modifying the eviction score mechanism. | a boolean flag; default false . |
eviction_checkpoint_ts_ordering | if true, act as if eviction is being run in parallel to checkpoint. We should return EBUSY in eviction if we detect any timestamp ordering issue. | a boolean flag; default false . |
log_retention | adjust log removal to retain at least this number of log files. (Warning: this option can remove log files required for recovery if no checkpoints have yet been done and the number of log files exceeds the configured value. As WiredTiger cannot detect the difference between a system that has not yet checkpointed and one that will never checkpoint, it might discard log files before any checkpoint is done.) Ignored if set to 0. | an integer between 0 and 1024 ; default 0 . |
realloc_exact | if true, reallocation of memory will only provide the exact amount requested. This will help with spotting memory allocation issues more easily. | a boolean flag; default false . |
realloc_malloc | if true, every realloc call will force a new memory allocation by using malloc. | a boolean flag; default false . |
rollback_error | return a WT_ROLLBACK error from a transaction operation about every Nth operation to simulate a collision. | an integer between 0 and 10M ; default 0 . |
slow_checkpoint | if true, slow down checkpoint creation by slowing down internal page processing. | a boolean flag; default false . |
stress_skiplist | Configure various internal parameters to encourage race conditions and other issues with internal skip lists, e.g. using a more dense representation. | a boolean flag; default false . |
table_logging | if true, write transaction related information to the log for all operations, even operations for tables with logging turned off. This additional logging information is intended for debugging and is informational only, that is, it is ignored during recovery. | a boolean flag; default false . |
tiered_flush_error_continue | on a write to tiered storage, continue when an error occurs. | a boolean flag; default false . |
update_restore_evict | if true, control all dirty page evictions through forcing update restore eviction. | a boolean flag; default false . |
) | | |
error_prefix | prefix string for error messages. | a string; default empty. |
eviction = ( | eviction configuration options. | a set of related configuration options defined as follows. |
evict_sample_inmem | If no in-memory ref is found on the root page, attempt to locate a random in-memory page by examining all entries on the root page. | a boolean flag; default true . |
threads_max | maximum number of threads WiredTiger will start to help evict pages from cache. The number of threads started will vary depending on the current eviction load. Each eviction worker thread uses a session from the configured session_max. | an integer between 1 and 20 ; default 8 . |
threads_min | minimum number of threads WiredTiger will start to help evict pages from cache. The number of threads currently running will vary depending on the current eviction load. | an integer between 1 and 20 ; default 1 . |
) | | |
eviction_checkpoint_target | perform eviction at the beginning of checkpoints to bring the dirty content in cache to this level. It is a percentage of the cache size if the value is within the range of 0 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the cache_size . Ignored if set to zero. | an integer between 0 and 10TB ; default 1 . |
eviction_dirty_target | perform eviction in worker threads when the cache contains at least this much dirty content. It is a percentage of the cache size if the value is within the range of 1 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the cache_size and has to be lower than its counterpart eviction_dirty_trigger . | an integer between 1 and 10TB ; default 5 . |
eviction_dirty_trigger | trigger application threads to perform eviction when the cache contains at least this much dirty content. It is a percentage of the cache size if the value is within the range of 1 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the cache_size and has to be greater than its counterpart eviction_dirty_target . This setting only alters behavior if it is lower than eviction_trigger. | an integer between 1 and 10TB ; default 20 . |
eviction_target | perform eviction in worker threads when the cache contains at least this much content. It is a percentage of the cache size if the value is within the range of 10 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the cache_size and has to be lower than its counterpart eviction_trigger . | an integer between 10 and 10TB ; default 80 . |
eviction_trigger | trigger application threads to perform eviction when the cache contains at least this much content. It is a percentage of the cache size if the value is within the range of 10 to 100 or an absolute size when greater than 100. The value is not allowed to exceed the cache_size and has to be greater than its counterpart eviction_target . | an integer between 10 and 10TB ; default 95 . |
eviction_updates_target | perform eviction in worker threads when the cache contains at least this many bytes of updates. It is a percentage of the cache size if the value is within the range of 0 to 100 or an absolute size when greater than 100. Calculated as half of eviction_dirty_target by default. The value is not allowed to exceed the cache_size and has to be lower than its counterpart eviction_updates_trigger . | an integer between 0 and 10TB ; default 0 . |
eviction_updates_trigger | trigger application threads to perform eviction when the cache contains at least this many bytes of updates. It is a percentage of the cache size if the value is within the range of 1 to 100 or an absolute size when greater than 100. Calculated as half of eviction_dirty_trigger by default. The value is not allowed to exceed the cache_size and has to be greater than its counterpart eviction_updates_target . This setting only alters behavior if it is lower than eviction_trigger . | an integer between 0 and 10TB ; default 0 . |
extra_diagnostics | enable additional diagnostics in WiredTiger. These additional diagnostics include diagnostic assertions that can cause WiredTiger to abort when an invalid state is detected. Options are given as a list, such as "extra_diagnostics=[out_of_order,visibility]" . Choosing all enables all assertions. When WiredTiger is compiled with HAVE_DIAGNOSTIC=1 all assertions are enabled and cannot be reconfigured. | a list, with values chosen from the following options: "all" , "checkpoint_validate" , "cursor_check" , "disk_validate" , "eviction_check" , "generation_check" , "hs_validate" , "key_out_of_order" , "log_validate" , "prepared" , "slow_operation" , "txn_visibility" ; default []. |
file_manager = ( | control how file handles are managed. | a set of related configuration options defined as follows. |
close_handle_minimum | number of handles open before the file manager will look for handles to close. | an integer greater than or equal to 0 ; default 250 . |
close_idle_time | amount of time in seconds a file handle needs to be idle before attempting to close it. A setting of 0 means that idle handles are not closed. | an integer between 0 and 100000 ; default 30 . |
close_scan_interval | interval in seconds at which to check for files that are inactive and close them. | an integer between 1 and 100000 ; default 10 . |
) | | |
generation_drain_timeout_ms | the number of milliseconds to wait for a resource to drain before timing out in diagnostic mode. Default will wait for 4 minutes, 0 will wait forever. | an integer greater than or equal to 0 ; default 240000 . |
heuristic_controls = ( | control the behavior of various optimizations. This is primarily used as a mechanism for rolling out changes to internal heuristics while providing a mechanism for quickly reverting to prior behavior in the field. | a set of related configuration options defined as follows. |
checkpoint_cleanup_obsolete_tw_pages_dirty_max | maximum number of obsolete time window pages that can be marked as dirty per btree in a single checkpoint by the checkpoint cleanup. | an integer between 0 and 100000 ; default 100 . |
eviction_obsolete_tw_pages_dirty_max | maximum number of obsolete time window pages that can be marked dirty per btree in a single checkpoint by the eviction threads. | an integer between 0 and 100000 ; default 100 . |
obsolete_tw_btree_max | maximum number of btrees that can be checked for obsolete time window cleanup in a single checkpoint. | an integer between 0 and 500000 ; default 100 . |
) | | |
history_store = ( | history store configuration options. | a set of related configuration options defined as follows. |
file_max | the maximum number of bytes that WiredTiger is allowed to use for its history store mechanism. If the history store file exceeds this size, a panic will be triggered. The default value means that the history store file is unbounded and may use as much space as the filesystem will accommodate. The minimum non-zero setting is 100MB. | an integer greater than or equal to 0 ; default 0 . |
) | | |
io_capacity = ( | control how many bytes per second are written and read. Exceeding the capacity results in throttling. | a set of related configuration options defined as follows. |
chunk_cache | number of bytes per second available to the chunk cache. The minimum non-zero setting is 1MB. | an integer between 0 and 1TB ; default 0 . |
total | number of bytes per second available to all subsystems in total. When set, decisions about what subsystems are throttled, and in what proportion, are made internally. The minimum non-zero setting is 1MB. | an integer between 0 and 1TB ; default 0 . |
) | | |
json_output | enable JSON formatted messages on the event handler interface. Options are given as a list, where each option specifies an event handler category e.g. 'error' represents the messages from the WT_EVENT_HANDLER::handle_error method. | a list, with values chosen from the following options: "error" , "message" ; default []. |
log = ( | enable logging. Enabling logging uses three sessions from the configured session_max. | a set of related configuration options defined as follows. |
os_cache_dirty_pct | maximum dirty system buffer cache usage, as a percentage of the log's file_max . If non-zero, schedule writes for dirty blocks belonging to the log in the system buffer cache after that percentage of the log has been written into the buffer cache without an intervening file sync. | an integer between 0 and 100 ; default 0 . |
prealloc | pre-allocate log files. | a boolean flag; default true . |
prealloc_init_count | initial number of pre-allocated log files. | an integer between 1 and 500 ; default 1 . |
remove | automatically remove unneeded log files. | a boolean flag; default true . |
zero_fill | manually write zeroes into log files. | a boolean flag; default false . |
) | | |
lsm_manager = ( | configure database wide options for LSM tree management. The LSM manager is started automatically the first time an LSM tree is opened. The LSM manager uses a session from the configured session_max. | a set of related configuration options defined as follows. |
merge | merge LSM chunks where possible. | a boolean flag; default true . |
worker_thread_max | Configure a set of threads to manage merging LSM trees in the database. Each worker thread uses a session handle from the configured session_max. | an integer between 3 and 20 ; default 4 . |
) | | |
operation_timeout_ms | this option is no longer supported, retained for backward compatibility. | an integer greater than or equal to 0 ; default 0 . |
operation_tracking = ( | enable tracking of performance-critical functions. See Track function calls for more information. | a set of related configuration options defined as follows. |
enabled | enable operation tracking subsystem. | a boolean flag; default false . |
path | the name of a directory into which operation tracking files are written. The directory must already exist. If the value is not an absolute path, the path is relative to the database home (see Absolute paths for more information). | a string; default "." . |
) | | |
shared_cache = ( | shared cache configuration options. A database should configure either a cache_size or a shared_cache not both. Enabling a shared cache uses a session from the configured session_max. A shared cache can not have absolute values configured for cache eviction settings. | a set of related configuration options defined as follows. |
chunk | the granularity that a shared cache is redistributed. | an integer between 1MB and 10TB ; default 10MB . |
name | the name of a cache that is shared between databases or "none" when no shared cache is configured. | a string; default none . |
quota | maximum size of cache this database can be allocated from the shared cache. Defaults to the entire shared cache size. | an integer; default 0 . |
reserve | amount of cache this database is guaranteed to have available from the shared cache. This setting is per database. Defaults to the chunk size. | an integer; default 0 . |
size | maximum memory to allocate for the shared cache. Setting this will update the value if one is already set. | an integer between 1MB and 10TB ; default 500MB . |
) | | |
statistics | Maintain database statistics, which may impact performance. Choosing "all" maintains all statistics regardless of cost, "fast" maintains a subset of statistics that are relatively inexpensive, "none" turns off all statistics. The "clear" configuration resets statistics after they are gathered, where appropriate (for example, a cache size statistic is not cleared, while the count of cursor insert operations will be cleared). When "clear" is configured for the database, gathered statistics are reset each time a statistics cursor is used to gather statistics, as well as each time statistics are logged using the statistics_log configuration. See Statistics for more information. | a list, with values chosen from the following options: "all" , "cache_walk" , "fast" , "none" , "clear" , "tree_walk" ; default none . |
statistics_log = ( | log any statistics the database is configured to maintain, to a file. See Statistics for more information. Enabling the statistics log server uses a session from the configured session_max. | a set of related configuration options defined as follows. |
json | encode statistics in JSON format. | a boolean flag; default false . |
on_close | log statistics on database close. | a boolean flag; default false . |
sources | if non-empty, include statistics for the list of "file:" and "lsm:" data source URIs, if they are open at the time of the statistics logging. | a list of strings; default empty. |
timestamp | a timestamp prepended to each log record. May contain strftime conversion specifications. When json is configured, defaults to "%Y-%m-%dT%H:%M:%S.000Z" . | a string; default "%b %d %H:%M:%S" . |
wait | seconds to wait between each write of the log records; setting this value above 0 configures statistics logging. | an integer between 0 and 100000 ; default 0 . |
) | | |
tiered_storage = ( | enable tiered storage. Enabling tiered storage may use one session from the configured session_max. | a set of related configuration options defined as follows. |
local_retention | time in seconds to retain data on tiered storage on the local tier for faster read access. | an integer between 0 and 10000 ; default 300 . |
) | | |
verbose | enable messages for various subsystems and operations. Options are given as a list, where each message type can optionally define an associated verbosity level, such as "verbose=[eviction,read:1,rts:0]" . Verbosity levels that can be provided include 0 (INFO) and 1 through 5 , corresponding to (DEBUG_1) to (DEBUG_5). all is a special case that defines the verbosity level for all categories not explicitly set in the config string. | a list, with values chosen from the following options: "all" , "api" , "backup" , "block" , "block_cache" , "checkpoint" , "checkpoint_cleanup" , "checkpoint_progress" , "chunkcache" , "compact" , "compact_progress" , "configuration" , "error_returns" , "eviction" , "fileops" , "generation" , "handleops" , "history_store" , "history_store_activity" , "log" , "lsm" , "lsm_manager" , "metadata" , "mutex" , "out_of_order" , "overflow" , "prefetch" , "read" , "reconcile" , "recovery" , "recovery_progress" , "rts" , "salvage" , "shared_cache" , "split" , "temporary" , "thread_group" , "tiered" , "timestamp" , "transaction" , "verify" , "version" , "write" ; default []. |