diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/include/wiredtiger.in')
-rw-r--r-- | src/third_party/wiredtiger/src/include/wiredtiger.in | 2294 |
1 files changed, 1023 insertions, 1271 deletions
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in index 13a3c637407..b9fed57f9ad 100644 --- a/src/third_party/wiredtiger/src/include/wiredtiger.in +++ b/src/third_party/wiredtiger/src/include/wiredtiger.in @@ -655,15 +655,13 @@ struct __wt_cursor { * * @param cursor the cursor handle * @configstart{WT_CURSOR.reconfigure, see dist/api_data.py} - * @config{append, append the value as a new record\, creating a new - * record number key; valid only for cursors with record number keys., a - * boolean flag; default \c false.} - * @config{overwrite, configures whether the cursor's insert\, update - * and remove methods check the existing state of the record. If \c - * overwrite is \c false\, WT_CURSOR::insert fails with - * ::WT_DUPLICATE_KEY if the record exists\, WT_CURSOR::update and - * WT_CURSOR::remove fail with ::WT_NOTFOUND if the record does not - * exist., a boolean flag; default \c true.} + * @config{append, append the value as a new record\, creating a new record number key; + * valid only for cursors with record number keys., a boolean flag; default \c false.} + * @config{overwrite, configures whether the cursor's insert\, update and remove methods + * check the existing state of the record. If \c overwrite is \c false\, WT_CURSOR::insert + * fails with ::WT_DUPLICATE_KEY if the record exists\, WT_CURSOR::update and + * WT_CURSOR::remove fail with ::WT_NOTFOUND if the record does not exist., a boolean flag; + * default \c true.} * @configend * @errors */ @@ -973,21 +971,18 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.reconfigure, see dist/api_data.py} - * @config{cache_cursors, enable caching of cursors for reuse. Any - * calls to WT_CURSOR::close for a cursor created in this session will - * mark the cursor as cached and keep it available to be reused for - * later calls to WT_SESSION::open_cursor. Cached cursors may be - * eventually closed. This value is inherited from ::wiredtiger_open \c + * @config{cache_cursors, enable caching of cursors for reuse. Any calls to + * WT_CURSOR::close for a cursor created in this session will mark the cursor as cached and + * keep it available to be reused for later calls to WT_SESSION::open_cursor. Cached + * cursors may be eventually closed. This value is inherited from ::wiredtiger_open \c * cache_cursors., a boolean flag; default \c true.} - * @config{ignore_cache_size, when set\, operations performed by this - * session ignore the cache size and are not blocked when the cache is - * full. Note that use of this option for operations that create cache - * pressure can starve ordinary sessions that obey the cache size., a - * boolean flag; default \c false.} - * @config{isolation, the default isolation level for operations in this - * session., a string\, chosen from the following options: \c - * "read-uncommitted"\, \c "read-committed"\, \c "snapshot"; default \c - * read-committed.} + * @config{ignore_cache_size, when set\, operations performed by this session ignore the + * cache size and are not blocked when the cache is full. Note that use of this option for + * operations that create cache pressure can starve ordinary sessions that obey the cache + * size., a boolean flag; default \c false.} + * @config{isolation, the default isolation level for operations in this session., a + * string\, chosen from the following options: \c "read-uncommitted"\, \c "read-committed"\, + * \c "snapshot"; default \c read-committed.} * @configend * @errors */ @@ -1047,86 +1042,67 @@ struct __wt_session { * @copydoc doc_cursor_types * @param to_dup a cursor to duplicate or gather statistics on * @configstart{WT_SESSION.open_cursor, see dist/api_data.py} - * @config{append, append the value as a new record\, creating a new - * record number key; valid only for cursors with record number keys., a - * boolean flag; default \c false.} - * @config{bulk, configure the cursor for bulk-loading\, a fast\, - * initial load path (see @ref tune_bulk_load for more information). - * Bulk-load may only be used for newly created objects and applications - * should use the WT_CURSOR::insert method to insert rows. When - * bulk-loading\, rows must be loaded in sorted order. The value is - * usually a true/false flag; when bulk-loading fixed-length column - * store objects\, the special value \c bitmap allows chunks of a memory - * resident bitmap to be loaded directly into a file by passing a \c - * WT_ITEM to WT_CURSOR::set_value where the \c size field indicates the - * number of records in the bitmap (as specified by the object's \c - * value_format configuration). Bulk-loaded bitmap values must end on a - * byte boundary relative to the bit count (except for the last set of - * values loaded)., a string; default \c false.} - * @config{checkpoint, the name of a checkpoint to open (the reserved - * name "WiredTigerCheckpoint" opens the most recent internal checkpoint - * taken for the object). The cursor does not support data - * modification., a string; default empty.} - * @config{dump, configure the cursor for dump format inputs and - * outputs: "hex" selects a simple hexadecimal format\, "json" selects a - * JSON format with each record formatted as fields named by column - * names if available\, and "print" selects a format where only - * non-printing characters are hexadecimal encoded. These formats are - * compatible with the @ref util_dump and @ref util_load commands., a - * string\, chosen from the following options: \c "hex"\, \c "json"\, \c - * "print"; default empty.} - * @config{next_random, configure the cursor to return a pseudo-random - * record from the object when the WT_CURSOR::next method is called; - * valid only for row-store cursors. See @ref cursor_random for - * details., a boolean flag; default \c false.} - * @config{next_random_sample_size, cursors configured by \c next_random - * to return pseudo-random records from the object randomly select from - * the entire object\, by default. Setting \c next_random_sample_size - * to a non-zero value sets the number of samples the application - * expects to take using the \c next_random cursor. A cursor configured - * with both \c next_random and \c next_random_sample_size attempts to - * divide the object into \c next_random_sample_size equal-sized - * pieces\, and each retrieval returns a record from one of those - * pieces. See @ref cursor_random for details., a string; default \c - * 0.} - * @config{overwrite, configures whether the cursor's insert\, update - * and remove methods check the existing state of the record. If \c - * overwrite is \c false\, WT_CURSOR::insert fails with - * ::WT_DUPLICATE_KEY if the record exists\, WT_CURSOR::update and - * WT_CURSOR::remove fail with ::WT_NOTFOUND if the record does not - * exist., a boolean flag; default \c true.} - * @config{raw, ignore the encodings for the key and value\, manage data - * as if the formats were \c "u". See @ref cursor_raw for details., a - * boolean flag; default \c false.} - * @config{read_once, results that are brought into cache from disk by - * this cursor will be given less priority in the cache., a boolean - * flag; default \c false.} - * @config{readonly, only query operations are supported by this cursor. - * An error is returned if a modification is attempted using the cursor. - * The default is false for all cursor types except for log and metadata - * cursors., a boolean flag; default \c false.} - * @config{statistics, Specify the statistics to be gathered. Choosing - * "all" gathers statistics regardless of cost and may include - * traversing on-disk files; "fast" gathers a subset of relatively - * inexpensive statistics. The selection must agree with the database - * \c statistics configuration specified to ::wiredtiger_open or - * WT_CONNECTION::reconfigure. For example\, "all" or "fast" can be - * configured when the database is configured with "all"\, but the - * cursor open will fail if "all" is specified when the database is - * configured with "fast"\, and the cursor open will fail in all cases - * when the database is configured with "none". If "size" is - * configured\, only the underlying size of the object on disk is filled - * in and the object is not opened. If \c statistics is not - * configured\, the default configuration is the database configuration. - * The "clear" configuration resets statistics after gathering them\, - * where appropriate (for example\, a cache size statistic is not - * cleared\, while the count of cursor insert operations will be - * cleared). See @ref statistics for more information., a list\, with - * values chosen from the following options: \c "all"\, \c - * "cache_walk"\, \c "fast"\, \c "clear"\, \c "size"\, \c "tree_walk"; - * default empty.} - * @config{target, if non-empty\, backup the list of objects; valid only - * for a backup data source., a list of strings; default empty.} + * @config{append, append the value as a new record\, creating a new record number key; + * valid only for cursors with record number keys., a boolean flag; default \c false.} + * @config{bulk, configure the cursor for bulk-loading\, a fast\, initial load path (see + * @ref tune_bulk_load for more information). Bulk-load may only be used for newly created + * objects and applications should use the WT_CURSOR::insert method to insert rows. When + * bulk-loading\, rows must be loaded in sorted order. The value is usually a true/false + * flag; when bulk-loading fixed-length column store objects\, the special value \c bitmap + * allows chunks of a memory resident bitmap to be loaded directly into a file by passing a + * \c WT_ITEM to WT_CURSOR::set_value where the \c size field indicates the number of + * records in the bitmap (as specified by the object's \c value_format configuration). + * Bulk-loaded bitmap values must end on a byte boundary relative to the bit count (except + * for the last set of values loaded)., a string; default \c false.} + * @config{checkpoint, the name of a checkpoint to open (the reserved name + * "WiredTigerCheckpoint" opens the most recent internal checkpoint taken for the object). + * The cursor does not support data modification., a string; default empty.} + * @config{dump, configure the cursor for dump format inputs and outputs: "hex" selects a + * simple hexadecimal format\, "json" selects a JSON format with each record formatted as + * fields named by column names if available\, and "print" selects a format where only + * non-printing characters are hexadecimal encoded. These formats are compatible with the + * @ref util_dump and @ref util_load commands., a string\, chosen from the following + * options: \c "hex"\, \c "json"\, \c "print"; default empty.} + * @config{next_random, configure the cursor to return a pseudo-random record from the + * object when the WT_CURSOR::next method is called; valid only for row-store cursors. See + * @ref cursor_random for details., a boolean flag; default \c false.} + * @config{next_random_sample_size, cursors configured by \c next_random to return + * pseudo-random records from the object randomly select from the entire object\, by + * default. Setting \c next_random_sample_size to a non-zero value sets the number of + * samples the application expects to take using the \c next_random cursor. A cursor + * configured with both \c next_random and \c next_random_sample_size attempts to divide the + * object into \c next_random_sample_size equal-sized pieces\, and each retrieval returns a + * record from one of those pieces. See @ref cursor_random for details., a string; default + * \c 0.} + * @config{overwrite, configures whether the cursor's insert\, update and remove methods + * check the existing state of the record. If \c overwrite is \c false\, WT_CURSOR::insert + * fails with ::WT_DUPLICATE_KEY if the record exists\, WT_CURSOR::update and + * WT_CURSOR::remove fail with ::WT_NOTFOUND if the record does not exist., a boolean flag; + * default \c true.} + * @config{raw, ignore the encodings for the key and value\, manage data as if the formats + * were \c "u". See @ref cursor_raw for details., a boolean flag; default \c false.} + * @config{read_once, results that are brought into cache from disk by this cursor will be + * given less priority in the cache., a boolean flag; default \c false.} + * @config{readonly, only query operations are supported by this cursor. An error is + * returned if a modification is attempted using the cursor. The default is false for all + * cursor types except for log and metadata cursors., a boolean flag; default \c false.} + * @config{statistics, Specify the statistics to be gathered. Choosing "all" gathers + * statistics regardless of cost and may include traversing on-disk files; "fast" gathers a + * subset of relatively inexpensive statistics. The selection must agree with the database + * \c statistics configuration specified to ::wiredtiger_open or WT_CONNECTION::reconfigure. + * For example\, "all" or "fast" can be configured when the database is configured with + * "all"\, but the cursor open will fail if "all" is specified when the database is + * configured with "fast"\, and the cursor open will fail in all cases when the database is + * configured with "none". If "size" is configured\, only the underlying size of the object + * on disk is filled in and the object is not opened. If \c statistics is not configured\, + * the default configuration is the database configuration. The "clear" configuration + * resets statistics after gathering them\, where appropriate (for example\, a cache size + * statistic is not cleared\, while the count of cursor insert operations will be cleared). + * See @ref statistics for more information., a list\, with values chosen from the following + * options: \c "all"\, \c "cache_walk"\, \c "fast"\, \c "clear"\, \c "size"\, \c + * "tree_walk"; default empty.} + * @config{target, if non-empty\, backup the list of objects; valid only for a backup data + * source., a list of strings; default empty.} * @configend * @param[out] cursorp a pointer to the newly opened cursor * @errors @@ -1153,34 +1129,30 @@ struct __wt_session { * @param session the session handle * @param name the URI of the object to alter, such as \c "table:stock" * @configstart{WT_SESSION.alter, see dist/api_data.py} - * @config{access_pattern_hint, It is recommended that workloads that - * consist primarily of updates and/or point queries specify \c random. - * Workloads that do many cursor scans through large ranges of data - * specify \c sequential and other workloads specify \c none. The - * option leads to an advisory call to an appropriate operating system - * API where available., a string\, chosen from the following options: - * \c "none"\, \c "random"\, \c "sequential"; default \c none.} - * @config{app_metadata, application-owned metadata for this object., a - * string; default empty.} - * @config{cache_resident, do not ever evict the object's pages from - * cache. Not compatible with LSM tables; see @ref - * tuning_cache_resident for more information., a boolean flag; default - * \c false.} - * @config{log = (, the transaction log configuration for this object. - * Only valid if log is enabled in ::wiredtiger_open., a set of related - * configuration options defined below.} - * @config{ enabled, if false\, this object has - * checkpoint-level durability., a boolean flag; default \c true.} + * @config{access_pattern_hint, It is recommended that workloads that consist primarily of + * updates and/or point queries specify \c random. Workloads that do many cursor scans + * through large ranges of data specify \c sequential and other workloads specify \c none. + * The option leads to an advisory call to an appropriate operating system API where + * available., a string\, chosen from the following options: \c "none"\, \c "random"\, \c + * "sequential"; default \c none.} + * @config{app_metadata, application-owned metadata for this object., a string; default + * empty.} + * @config{cache_resident, do not ever evict the object's pages from cache. Not compatible + * with LSM tables; see @ref tuning_cache_resident for more information., a boolean flag; + * default \c false.} + * @config{log = (, the transaction log configuration for this object. Only valid if log is + * enabled in ::wiredtiger_open., a set of related configuration options defined below.} + * @config{ enabled, if false\, this object has checkpoint-level + * durability., a boolean flag; default \c true.} * @config{ ),,} - * @config{os_cache_dirty_max, maximum dirty system buffer cache usage\, - * in bytes. If non-zero\, schedule writes for dirty blocks belonging - * to this object in the system buffer cache after that many bytes from - * this object are written into the buffer cache., an integer greater - * than or equal to 0; default \c 0.} - * @config{os_cache_max, maximum system buffer cache usage\, in bytes. - * If non-zero\, evict object blocks from the system buffer cache after - * that many bytes from this object are read or written into the buffer - * cache., an integer greater than or equal to 0; default \c 0.} + * @config{os_cache_dirty_max, maximum dirty system buffer cache usage\, in bytes. If + * non-zero\, schedule writes for dirty blocks belonging to this object in the system buffer + * cache after that many bytes from this object are written into the buffer cache., an + * integer greater than or equal to 0; default \c 0.} + * @config{os_cache_max, maximum system buffer cache usage\, in bytes. If non-zero\, evict + * object blocks from the system buffer cache after that many bytes from this object are + * read or written into the buffer cache., an integer greater than or equal to 0; default \c + * 0.} * @configend * @errors */ @@ -1199,250 +1171,203 @@ struct __wt_session { * \c "table:stock". For a description of URI formats * see @ref data_sources. * @configstart{WT_SESSION.create, see dist/api_data.py} - * @config{access_pattern_hint, It is recommended that workloads that - * consist primarily of updates and/or point queries specify \c random. - * Workloads that do many cursor scans through large ranges of data - * specify \c sequential and other workloads specify \c none. The - * option leads to an advisory call to an appropriate operating system - * API where available., a string\, chosen from the following options: - * \c "none"\, \c "random"\, \c "sequential"; default \c none.} - * @config{allocation_size, the file unit allocation size\, in bytes\, - * must a power-of-two; smaller values decrease the file space required - * by overflow items\, and the default value of 4KB is a good choice - * absent requirements from the operating system or storage device., an - * integer between 512B and 128MB; default \c 4KB.} - * @config{app_metadata, application-owned metadata for this object., a - * string; default empty.} - * @config{block_allocation, configure block allocation. Permitted - * values are \c "first" or \c "best"; the \c "first" configuration uses - * a first-available algorithm during block allocation\, the \c "best" - * configuration uses a best-fit algorithm., a string\, chosen from the - * following options: \c "first"\, \c "best"; default \c best.} - * @config{block_compressor, configure a compressor for file blocks. - * Permitted values are \c "none" or custom compression engine name - * created with WT_CONNECTION::add_compressor. If WiredTiger has - * builtin support for \c "lz4"\, \c "snappy"\, \c "zlib" or \c "zstd" - * compression\, these names are also available. See @ref compression - * for more information., a string; default \c none.} - * @config{cache_resident, do not ever evict the object's pages from - * cache. Not compatible with LSM tables; see @ref - * tuning_cache_resident for more information., a boolean flag; default - * \c false.} - * @config{checksum, configure block checksums; permitted values are - * <code>on</code> (checksum all blocks)\, <code>off</code> (checksum no - * blocks) and <code>uncompresssed</code> (checksum only blocks which - * are not compressed for any reason). The \c uncompressed setting is - * for applications which can rely on decompression to fail if a block - * has been corrupted., a string\, chosen from the following options: \c + * @config{access_pattern_hint, It is recommended that workloads that consist primarily of + * updates and/or point queries specify \c random. Workloads that do many cursor scans + * through large ranges of data specify \c sequential and other workloads specify \c none. + * The option leads to an advisory call to an appropriate operating system API where + * available., a string\, chosen from the following options: \c "none"\, \c "random"\, \c + * "sequential"; default \c none.} + * @config{allocation_size, the file unit allocation size\, in bytes\, must a power-of-two; + * smaller values decrease the file space required by overflow items\, and the default value + * of 4KB is a good choice absent requirements from the operating system or storage device., + * an integer between 512B and 128MB; default \c 4KB.} + * @config{app_metadata, application-owned metadata for this object., a string; default + * empty.} + * @config{block_allocation, configure block allocation. Permitted values are \c "first" or + * \c "best"; the \c "first" configuration uses a first-available algorithm during block + * allocation\, the \c "best" configuration uses a best-fit algorithm., a string\, chosen + * from the following options: \c "first"\, \c "best"; default \c best.} + * @config{block_compressor, configure a compressor for file blocks. Permitted values are + * \c "none" or custom compression engine name created with WT_CONNECTION::add_compressor. + * If WiredTiger has builtin support for \c "lz4"\, \c "snappy"\, \c "zlib" or \c "zstd" + * compression\, these names are also available. See @ref compression for more + * information., a string; default \c none.} + * @config{cache_resident, do not ever evict the object's pages from cache. Not compatible + * with LSM tables; see @ref tuning_cache_resident for more information., a boolean flag; + * default \c false.} + * @config{checksum, configure block checksums; permitted values are <code>on</code> + * (checksum all blocks)\, <code>off</code> (checksum no blocks) and + * <code>uncompresssed</code> (checksum only blocks which are not compressed for any + * reason). The \c uncompressed setting is for applications which can rely on decompression + * to fail if a block has been corrupted., a string\, chosen from the following options: \c * "on"\, \c "off"\, \c "uncompressed"; default \c uncompressed.} - * @config{colgroups, comma-separated list of names of column groups. - * Each column group is stored separately\, keyed by the primary key of - * the table. If no column groups are specified\, all columns are - * stored together in a single file. All value columns in the table - * must appear in at least one column group. Each column group must be - * created with a separate call to WT_SESSION::create., a list of - * strings; default empty.} - * @config{collator, configure custom collation for keys. Permitted - * values are \c "none" or a custom collator name created with - * WT_CONNECTION::add_collator., a string; default \c none.} - * @config{columns, list of the column names. Comma-separated list of - * the form <code>(column[\,...])</code>. For tables\, the number of - * entries must match the total number of values in \c key_format and \c - * value_format. For colgroups and indices\, all column names must - * appear in the list of columns for the table., a list of strings; + * @config{colgroups, comma-separated list of names of column groups. Each column group is + * stored separately\, keyed by the primary key of the table. If no column groups are + * specified\, all columns are stored together in a single file. All value columns in the + * table must appear in at least one column group. Each column group must be created with a + * separate call to WT_SESSION::create., a list of strings; default empty.} + * @config{collator, configure custom collation for keys. Permitted values are \c "none" or + * a custom collator name created with WT_CONNECTION::add_collator., a string; default \c + * none.} + * @config{columns, list of the column names. Comma-separated list of the form + * <code>(column[\,...])</code>. For tables\, the number of entries must match the total + * number of values in \c key_format and \c value_format. For colgroups and indices\, all + * column names must appear in the list of columns for the table., a list of strings; * default empty.} - * @config{dictionary, the maximum number of unique values remembered in - * the Btree row-store leaf page value dictionary; see @ref - * file_formats_compression for more information., an integer greater - * than or equal to 0; default \c 0.} - * @config{encryption = (, configure an encryptor for file blocks. When - * a table is created\, its encryptor is not implicitly used for any - * related indices or column groups., a set of related configuration - * options defined below.} - * @config{ keyid, An - * identifier that identifies a unique instance of the encryptor. It is - * stored in clear text\, and thus is available when the wiredtiger - * database is reopened. On the first use of a (name\, keyid) - * combination\, the WT_ENCRYPTOR::customize function is called with the - * keyid as an argument., a string; default empty.} - * @config{ name, Permitted values are \c "none" - * or custom encryption engine name created with - * WT_CONNECTION::add_encryptor. See @ref encryption for more + * @config{dictionary, the maximum number of unique values remembered in the Btree row-store + * leaf page value dictionary; see @ref file_formats_compression for more information., an + * integer greater than or equal to 0; default \c 0.} + * @config{encryption = (, configure an encryptor for file blocks. When a table is + * created\, its encryptor is not implicitly used for any related indices or column groups., + * a set of related configuration options defined below.} + * @config{ + * keyid, An identifier that identifies a unique instance of the encryptor. It is stored in + * clear text\, and thus is available when the wiredtiger database is reopened. On the + * first use of a (name\, keyid) combination\, the WT_ENCRYPTOR::customize function is + * called with the keyid as an argument., a string; default empty.} + * @config{ name, Permitted values are \c "none" or custom encryption + * engine name created with WT_CONNECTION::add_encryptor. See @ref encryption for more * information., a string; default \c none.} * @config{ ),,} - * @config{exclusive, fail if the object exists. When false (the - * default)\, if the object exists\, check that its settings match the - * specified configuration., a boolean flag; default \c false.} - * @config{extractor, configure custom extractor for indices. Permitted - * values are \c "none" or an extractor name created with - * WT_CONNECTION::add_extractor., a string; default \c none.} - * @config{format, the file format., a string\, chosen from the - * following options: \c "btree"; default \c btree.} - * @config{huffman_key, configure Huffman encoding for keys. Permitted - * values are \c "none"\, \c "english"\, \c "utf8<file>" or \c - * "utf16<file>". See @ref huffman for more information., a string; - * default \c none.} - * @config{huffman_value, configure Huffman encoding for values. - * Permitted values are \c "none"\, \c "english"\, \c "utf8<file>" or \c - * "utf16<file>". See @ref huffman for more information., a string; - * default \c none.} - * @config{ignore_in_memory_cache_size, allow update and insert - * operations to proceed even if the cache is already at capacity. Only - * valid in conjunction with in-memory databases. Should be used with - * caution - this configuration allows WiredTiger to consume memory over + * @config{exclusive, fail if the object exists. When false (the default)\, if the object + * exists\, check that its settings match the specified configuration., a boolean flag; + * default \c false.} + * @config{extractor, configure custom extractor for indices. Permitted values are \c + * "none" or an extractor name created with WT_CONNECTION::add_extractor., a string; default + * \c none.} + * @config{format, the file format., a string\, chosen from the following options: \c + * "btree"; default \c btree.} + * @config{huffman_key, configure Huffman encoding for keys. Permitted values are \c + * "none"\, \c "english"\, \c "utf8<file>" or \c "utf16<file>". See @ref huffman for more + * information., a string; default \c none.} + * @config{huffman_value, configure Huffman encoding for values. Permitted values are \c + * "none"\, \c "english"\, \c "utf8<file>" or \c "utf16<file>". See @ref huffman for more + * information., a string; default \c none.} + * @config{ignore_in_memory_cache_size, allow update and insert operations to proceed even + * if the cache is already at capacity. Only valid in conjunction with in-memory databases. + * Should be used with caution - this configuration allows WiredTiger to consume memory over * the configured cache limit., a boolean flag; default \c false.} - * @config{immutable, configure the index to be immutable - that is an - * index is not changed by any update to a record in the table., a - * boolean flag; default \c false.} - * @config{internal_key_max, the largest key stored in an internal - * node\, in bytes. If set\, keys larger than the specified size are - * stored as overflow items (which may require additional I/O to - * access). The default and the maximum allowed value are both one-tenth - * the size of a newly split internal page., an integer greater than or - * equal to 0; default \c 0.} - * @config{internal_key_truncate, configure internal key truncation\, - * discarding unnecessary trailing bytes on internal keys (ignored for - * custom collators)., a boolean flag; default \c true.} - * @config{internal_page_max, the maximum page size for internal nodes\, - * in bytes; the size must be a multiple of the allocation size and is - * significant for applications wanting to avoid excessive L2 cache - * misses while searching the tree. The page maximum is the bytes of - * uncompressed data\, that is\, the limit is applied before any block - * compression is done., an integer between 512B and 512MB; default \c - * 4KB.} - * @config{key_format, the format of the data packed into key items. - * See @ref schema_format_types for details. By default\, the - * key_format is \c 'u' and applications use WT_ITEM structures to - * manipulate raw byte arrays. By default\, records are stored in - * row-store files: keys of type \c 'r' are record numbers and records - * referenced by record number are stored in column-store files., a - * format string; default \c u.} - * @config{leaf_key_max, the largest key stored in a leaf node\, in - * bytes. If set\, keys larger than the specified size are stored as - * overflow items (which may require additional I/O to access). The - * default value is one-tenth the size of a newly split leaf page., an + * @config{immutable, configure the index to be immutable - that is an index is not changed + * by any update to a record in the table., a boolean flag; default \c false.} + * @config{internal_key_max, the largest key stored in an internal node\, in bytes. If + * set\, keys larger than the specified size are stored as overflow items (which may require + * additional I/O to access). The default and the maximum allowed value are both one-tenth + * the size of a newly split internal page., an integer greater than or equal to 0; default + * \c 0.} + * @config{internal_key_truncate, configure internal key truncation\, discarding unnecessary + * trailing bytes on internal keys (ignored for custom collators)., a boolean flag; default + * \c true.} + * @config{internal_page_max, the maximum page size for internal nodes\, in bytes; the size + * must be a multiple of the allocation size and is significant for applications wanting to + * avoid excessive L2 cache misses while searching the tree. The page maximum is the bytes + * of uncompressed data\, that is\, the limit is applied before any block compression is + * done., an integer between 512B and 512MB; default \c 4KB.} + * @config{key_format, the format of the data packed into key items. See @ref + * schema_format_types for details. By default\, the key_format is \c 'u' and applications + * use WT_ITEM structures to manipulate raw byte arrays. By default\, records are stored in + * row-store files: keys of type \c 'r' are record numbers and records referenced by record + * number are stored in column-store files., a format string; default \c u.} + * @config{leaf_key_max, the largest key stored in a leaf node\, in bytes. If set\, keys + * larger than the specified size are stored as overflow items (which may require additional + * I/O to access). The default value is one-tenth the size of a newly split leaf page., an * integer greater than or equal to 0; default \c 0.} - * @config{leaf_page_max, the maximum page size for leaf nodes\, in - * bytes; the size must be a multiple of the allocation size\, and is - * significant for applications wanting to maximize sequential data - * transfer from a storage device. The page maximum is the bytes of - * uncompressed data\, that is\, the limit is applied before any block - * compression is done., an integer between 512B and 512MB; default \c - * 32KB.} - * @config{leaf_value_max, the largest value stored in a leaf node\, in - * bytes. If set\, values larger than the specified size are stored as - * overflow items (which may require additional I/O to access). If the - * size is larger than the maximum leaf page size\, the page size is - * temporarily ignored when large values are written. The default is - * one-half the size of a newly split leaf page., an integer greater - * than or equal to 0; default \c 0.} - * @config{log = (, the transaction log configuration for this object. - * Only valid if log is enabled in ::wiredtiger_open., a set of related - * configuration options defined below.} - * @config{ enabled, if false\, this object has - * checkpoint-level durability., a boolean flag; default \c true.} + * @config{leaf_page_max, the maximum page size for leaf nodes\, in bytes; the size must be + * a multiple of the allocation size\, and is significant for applications wanting to + * maximize sequential data transfer from a storage device. The page maximum is the bytes + * of uncompressed data\, that is\, the limit is applied before any block compression is + * done., an integer between 512B and 512MB; default \c 32KB.} + * @config{leaf_value_max, the largest value stored in a leaf node\, in bytes. If set\, + * values larger than the specified size are stored as overflow items (which may require + * additional I/O to access). If the size is larger than the maximum leaf page size\, the + * page size is temporarily ignored when large values are written. The default is one-half + * the size of a newly split leaf page., an integer greater than or equal to 0; default \c + * 0.} + * @config{log = (, the transaction log configuration for this object. Only valid if log is + * enabled in ::wiredtiger_open., a set of related configuration options defined below.} + * @config{ enabled, if false\, this object has checkpoint-level + * durability., a boolean flag; default \c true.} * @config{ ),,} - * @config{lsm = (, options only relevant for LSM data sources., a set - * of related configuration options defined below.} - * @config{ auto_throttle, Throttle inserts into - * LSM trees if flushing to disk isn't keeping up., a boolean flag; - * default \c true.} - * @config{ bloom, create bloom - * filters on LSM tree chunks as they are merged., a boolean flag; + * @config{lsm = (, options only relevant for LSM data sources., a set of related + * configuration options defined below.} + * @config{ auto_throttle, + * Throttle inserts into LSM trees if flushing to disk isn't keeping up., a boolean flag; * default \c true.} - * @config{ bloom_bit_count, - * the number of bits used per item for LSM bloom filters., an integer - * between 2 and 1000; default \c 16.} - * @config{ - * bloom_config, config string used when creating Bloom filter files\, - * passed to WT_SESSION::create., a string; default empty.} - * @config{ bloom_hash_count, the number of hash - * values per item used for LSM bloom filters., an integer between 2 and - * 100; default \c 8.} - * @config{ bloom_oldest, - * create a bloom filter on the oldest LSM tree chunk. Only supported - * if bloom filters are enabled., a boolean flag; default \c false.} - * @config{ chunk_count_limit, the maximum number - * of chunks to allow in an LSM tree. This option automatically times - * out old data. As new chunks are added old chunks will be removed. - * Enabling this option disables LSM background merges., an integer; - * default \c 0.} - * @config{ chunk_max, the maximum - * size a single chunk can be. Chunks larger than this size are not - * considered for further merges. This is a soft limit\, and chunks - * larger than this value can be created. Must be larger than - * chunk_size., an integer between 100MB and 10TB; default \c 5GB.} - * @config{ chunk_size, the maximum size of the - * in-memory chunk of an LSM tree. This limit is soft - it is possible - * for chunks to be temporarily larger than this value. This overrides - * the \c memory_page_max setting., an integer between 512K and 500MB; - * default \c 10MB.} - * @config{ merge_custom = (, - * configure the tree to merge into a custom data source., a set of - * related configuration options defined below.} - * @config{ prefix, - * custom data source prefix instead of \c "file"., a string; default - * empty.} - * @config{ - * start_generation, merge generation at which the custom data source is - * used (zero indicates no custom data source)., an integer between 0 - * and 10; default \c 0.} - * @config{ suffix, - * custom data source suffix instead of \c ".lsm"., a string; default - * empty.} + * @config{ bloom, create bloom filters on LSM tree + * chunks as they are merged., a boolean flag; default \c true.} + * @config{ bloom_bit_count, the number of bits used per item for LSM + * bloom filters., an integer between 2 and 1000; default \c 16.} + * @config{ bloom_config, config string used when creating Bloom + * filter files\, passed to WT_SESSION::create., a string; default empty.} + * @config{ bloom_hash_count, the number of hash values per item used + * for LSM bloom filters., an integer between 2 and 100; default \c 8.} + * @config{ bloom_oldest, create a bloom filter on the oldest LSM + * tree chunk. Only supported if bloom filters are enabled., a boolean flag; default \c + * false.} + * @config{ chunk_count_limit, the maximum number of chunks + * to allow in an LSM tree. This option automatically times out old data. As new chunks + * are added old chunks will be removed. Enabling this option disables LSM background + * merges., an integer; default \c 0.} + * @config{ chunk_max, the + * maximum size a single chunk can be. Chunks larger than this size are not considered for + * further merges. This is a soft limit\, and chunks larger than this value can be created. + * Must be larger than chunk_size., an integer between 100MB and 10TB; default \c 5GB.} + * @config{ chunk_size, the maximum size of the in-memory chunk of an + * LSM tree. This limit is soft - it is possible for chunks to be temporarily larger than + * this value. This overrides the \c memory_page_max setting., an integer between 512K and + * 500MB; default \c 10MB.} + * @config{ merge_custom = (, configure the + * tree to merge into a custom data source., a set of related configuration options defined + * below.} + * @config{ prefix, custom data + * source prefix instead of \c "file"., a string; default empty.} + * @config{ start_generation, merge + * generation at which the custom data source is used (zero indicates no custom data + * source)., an integer between 0 and 10; default \c 0.} + * @config{ suffix, custom data source suffix + * instead of \c ".lsm"., a string; default empty.} * @config{ ),,} - * @config{ merge_max, the - * maximum number of chunks to include in a merge operation., an integer - * between 2 and 100; default \c 15.} - * @config{ - * merge_min, the minimum number of chunks to include in a merge - * operation. If set to 0 or 1 half the value of merge_max is used., an - * integer no more than 100; default \c 0.} + * @config{ merge_max, the maximum number of chunks to include in a + * merge operation., an integer between 2 and 100; default \c 15.} + * @config{ merge_min, the minimum number of chunks to include in a + * merge operation. If set to 0 or 1 half the value of merge_max is used., an integer no + * more than 100; default \c 0.} * @config{ ),,} - * @config{memory_page_image_max, the maximum in-memory page image - * represented by a single storage block. Depending on compression - * efficiency\, compression can create storage blocks which require - * significant resources to re-instantiate in the cache\, penalizing the - * performance of future point updates. The value limits the maximum - * in-memory page image a storage block will need. If set to 0\, a - * default of 4 times \c leaf_page_max is used., an integer greater than - * or equal to 0; default \c 0.} - * @config{memory_page_max, the maximum size a page can grow to in - * memory before being reconciled to disk. The specified size will be - * adjusted to a lower bound of <code>leaf_page_max</code>\, and an - * upper bound of <code>cache_size / 10</code>. This limit is soft - it - * is possible for pages to be temporarily larger than this value. This - * setting is ignored for LSM trees\, see \c chunk_size., an integer - * between 512B and 10TB; default \c 5MB.} - * @config{os_cache_dirty_max, maximum dirty system buffer cache usage\, - * in bytes. If non-zero\, schedule writes for dirty blocks belonging - * to this object in the system buffer cache after that many bytes from - * this object are written into the buffer cache., an integer greater - * than or equal to 0; default \c 0.} - * @config{os_cache_max, maximum system buffer cache usage\, in bytes. - * If non-zero\, evict object blocks from the system buffer cache after - * that many bytes from this object are read or written into the buffer - * cache., an integer greater than or equal to 0; default \c 0.} - * @config{prefix_compression, configure prefix compression on row-store - * leaf pages., a boolean flag; default \c false.} - * @config{prefix_compression_min, minimum gain before prefix - * compression will be used on row-store leaf pages., an integer greater - * than or equal to 0; default \c 4.} - * @config{split_pct, the Btree page split size as a percentage of the - * maximum Btree page size\, that is\, when a Btree page is split\, it - * will be split into smaller pages\, where each page is the specified - * percentage of the maximum Btree page size., an integer between 50 and - * 100; default \c 90.} - * @config{type, set the type of data source used to store a column - * group\, index or simple table. By default\, a \c "file:" URI is - * derived from the object name. The \c type configuration can be used - * to switch to a different data source\, such as LSM or an extension - * configured by the application., a string; default \c file.} - * @config{value_format, the format of the data packed into value items. - * See @ref schema_format_types for details. By default\, the - * value_format is \c 'u' and applications use a WT_ITEM structure to - * manipulate raw byte arrays. Value items of type 't' are bitfields\, - * and when configured with record number type keys\, will be stored + * @config{memory_page_image_max, the maximum in-memory page image represented by a single + * storage block. Depending on compression efficiency\, compression can create storage + * blocks which require significant resources to re-instantiate in the cache\, penalizing + * the performance of future point updates. The value limits the maximum in-memory page + * image a storage block will need. If set to 0\, a default of 4 times \c leaf_page_max is + * used., an integer greater than or equal to 0; default \c 0.} + * @config{memory_page_max, the maximum size a page can grow to in memory before being + * reconciled to disk. The specified size will be adjusted to a lower bound of + * <code>leaf_page_max</code>\, and an upper bound of <code>cache_size / 10</code>. This + * limit is soft - it is possible for pages to be temporarily larger than this value. This + * setting is ignored for LSM trees\, see \c chunk_size., an integer between 512B and 10TB; + * default \c 5MB.} + * @config{os_cache_dirty_max, maximum dirty system buffer cache usage\, in bytes. If + * non-zero\, schedule writes for dirty blocks belonging to this object in the system buffer + * cache after that many bytes from this object are written into the buffer cache., an + * integer greater than or equal to 0; default \c 0.} + * @config{os_cache_max, maximum system buffer cache usage\, in bytes. If non-zero\, evict + * object blocks from the system buffer cache after that many bytes from this object are + * read or written into the buffer cache., an integer greater than or equal to 0; default \c + * 0.} + * @config{prefix_compression, configure prefix compression on row-store leaf pages., a + * boolean flag; default \c false.} + * @config{prefix_compression_min, minimum gain before prefix compression will be used on + * row-store leaf pages., an integer greater than or equal to 0; default \c 4.} + * @config{split_pct, the Btree page split size as a percentage of the maximum Btree page + * size\, that is\, when a Btree page is split\, it will be split into smaller pages\, where + * each page is the specified percentage of the maximum Btree page size., an integer between + * 50 and 100; default \c 90.} + * @config{type, set the type of data source used to store a column group\, index or simple + * table. By default\, a \c "file:" URI is derived from the object name. The \c type + * configuration can be used to switch to a different data source\, such as LSM or an + * extension configured by the application., a string; default \c file.} + * @config{value_format, the format of the data packed into value items. See @ref + * schema_format_types for details. By default\, the value_format is \c 'u' and + * applications use a WT_ITEM structure to manipulate raw byte arrays. Value items of type + * 't' are bitfields\, and when configured with record number type keys\, will be stored * using a fixed-length store., a format string; default \c u.} * @configend * @errors @@ -1474,10 +1399,9 @@ struct __wt_session { * @param name the URI of the object to compact, such as * \c "table:stock" * @configstart{WT_SESSION.compact, see dist/api_data.py} - * @config{timeout, maximum amount of time to allow for compact in - * seconds. The actual amount of time spent in compact may exceed the - * configured value. A value of zero disables the timeout., an integer; - * default \c 1200.} + * @config{timeout, maximum amount of time to allow for compact in seconds. The actual + * amount of time spent in compact may exceed the configured value. A value of zero + * disables the timeout., an integer; default \c 1200.} * @configend * @errors */ @@ -1496,10 +1420,10 @@ struct __wt_session { * @param session the session handle * @param name the URI of the object to drop, such as \c "table:stock" * @configstart{WT_SESSION.drop, see dist/api_data.py} - * @config{force, return success if the object does not exist., a - * boolean flag; default \c false.} - * @config{remove_files, if the underlying files should be removed., a - * boolean flag; default \c true.} + * @config{force, return success if the object does not exist., a boolean flag; default \c + * false.} + * @config{remove_files, if the underlying files should be removed., a boolean flag; default + * \c true.} * @configend * @ebusy_errors */ @@ -1539,35 +1463,28 @@ struct __wt_session { * finished with it, although not before the join_cursor is closed. * * @configstart{WT_SESSION.join, see dist/api_data.py} - * @config{bloom_bit_count, the number of bits used per item for the - * bloom filter., an integer between 2 and 1000; default \c 16.} - * @config{bloom_false_positives, return all values that pass the bloom - * filter\, without eliminating any false positives., a boolean flag; - * default \c false.} - * @config{bloom_hash_count, the number of hash values per item for the - * bloom filter., an integer between 2 and 100; default \c 8.} - * @config{compare, modifies the set of items to be returned so that the - * index key satisfies the given comparison relative to the key set in - * this cursor., a string\, chosen from the following options: \c "eq"\, - * \c "ge"\, \c "gt"\, \c "le"\, \c "lt"; default \c "eq".} - * @config{count, set an approximate count of the elements that would be - * included in the join. This is used in sizing the bloom filter\, and - * also influences evaluation order for cursors in the join. When the - * count is equal for multiple bloom filters in a composition of joins\, - * the bloom filter may be shared., an integer; default \c .} - * @config{operation, the operation applied between this and other - * joined cursors. When "operation=and" is specified\, all the - * conditions implied by joins must be satisfied for an entry to be - * returned by the join cursor; when "operation=or" is specified\, only - * one must be satisfied. All cursors joined to a join cursor must have - * matching operations., a string\, chosen from the following options: - * \c "and"\, \c "or"; default \c "and".} - * @config{strategy, when set to bloom\, a bloom filter is created and - * populated for this index. This has an up front cost but may reduce - * the number of accesses to the main table when iterating the joined - * cursor. The bloom setting requires that count be set., a string\, - * chosen from the following options: \c "bloom"\, \c "default"; default - * empty.} + * @config{bloom_bit_count, the number of bits used per item for the bloom filter., an + * integer between 2 and 1000; default \c 16.} + * @config{bloom_false_positives, return all values that pass the bloom filter\, without + * eliminating any false positives., a boolean flag; default \c false.} + * @config{bloom_hash_count, the number of hash values per item for the bloom filter., an + * integer between 2 and 100; default \c 8.} + * @config{compare, modifies the set of items to be returned so that the index key satisfies + * the given comparison relative to the key set in this cursor., a string\, chosen from the + * following options: \c "eq"\, \c "ge"\, \c "gt"\, \c "le"\, \c "lt"; default \c "eq".} + * @config{count, set an approximate count of the elements that would be included in the + * join. This is used in sizing the bloom filter\, and also influences evaluation order for + * cursors in the join. When the count is equal for multiple bloom filters in a composition + * of joins\, the bloom filter may be shared., an integer; default \c .} + * @config{operation, the operation applied between this and other joined cursors. When + * "operation=and" is specified\, all the conditions implied by joins must be satisfied for + * an entry to be returned by the join cursor; when "operation=or" is specified\, only one + * must be satisfied. All cursors joined to a join cursor must have matching operations., a + * string\, chosen from the following options: \c "and"\, \c "or"; default \c "and".} + * @config{strategy, when set to bloom\, a bloom filter is created and populated for this + * index. This has an up front cost but may reduce the number of accesses to the main table + * when iterating the joined cursor. The bloom setting requires that count be set., a + * string\, chosen from the following options: \c "bloom"\, \c "default"; default empty.} * @configend * @errors */ @@ -1579,14 +1496,12 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.log_flush, see dist/api_data.py} - * @config{sync, forcibly flush the log and wait for it to achieve the - * synchronization level specified. The \c background setting initiates - * a background synchronization intended to be used with a later call to - * WT_SESSION::transaction_sync. The \c off setting forces any buffered - * log records to be written to the file system. The \c on setting - * forces log records to be written to the storage device., a string\, - * chosen from the following options: \c "background"\, \c "off"\, \c - * "on"; default \c on.} + * @config{sync, forcibly flush the log and wait for it to achieve the synchronization level + * specified. The \c background setting initiates a background synchronization intended to + * be used with a later call to WT_SESSION::transaction_sync. The \c off setting forces any + * buffered log records to be written to the file system. The \c on setting forces log + * records to be written to the storage device., a string\, chosen from the following + * options: \c "background"\, \c "off"\, \c "on"; default \c on.} * @configend * @errors */ @@ -1673,8 +1588,8 @@ struct __wt_session { * @param session the session handle * @param name the URI of the table or file to salvage * @configstart{WT_SESSION.salvage, see dist/api_data.py} - * @config{force, force salvage even of files that do not appear to be - * WiredTiger files., a boolean flag; default \c false.} + * @config{force, force salvage even of files that do not appear to be WiredTiger files., a + * boolean flag; default \c false.} * @configend * @ebusy_errors */ @@ -1752,26 +1667,24 @@ struct __wt_session { * @param session the session handle * @param name the URI of the table or file to verify * @configstart{WT_SESSION.verify, see dist/api_data.py} - * @config{dump_address, Display addresses and page types as pages are - * verified\, using the application's message handler\, intended for - * debugging., a boolean flag; default \c false.} - * @config{dump_blocks, Display the contents of on-disk blocks as they - * are verified\, using the application's message handler\, intended for - * debugging., a boolean flag; default \c false.} - * @config{dump_layout, Display the layout of the files as they are - * verified\, using the application's message handler\, intended for - * debugging; requires optional support from the block manager., a - * boolean flag; default \c false.} - * @config{dump_offsets, Display the contents of specific on-disk - * blocks\, using the application's message handler\, intended for - * debugging., a list of strings; default empty.} - * @config{dump_pages, Display the contents of in-memory pages as they - * are verified\, using the application's message handler\, intended for - * debugging., a boolean flag; default \c false.} - * @config{strict, Treat any verification problem as an error; by - * default\, verify will warn\, but not fail\, in the case of errors - * that won't affect future behavior (for example\, a leaked block)., a - * boolean flag; default \c false.} + * @config{dump_address, Display addresses and page types as pages are verified\, using the + * application's message handler\, intended for debugging., a boolean flag; default \c + * false.} + * @config{dump_blocks, Display the contents of on-disk blocks as they are verified\, using + * the application's message handler\, intended for debugging., a boolean flag; default \c + * false.} + * @config{dump_layout, Display the layout of the files as they are verified\, using the + * application's message handler\, intended for debugging; requires optional support from + * the block manager., a boolean flag; default \c false.} + * @config{dump_offsets, Display the contents of specific on-disk blocks\, using the + * application's message handler\, intended for debugging., a list of strings; default + * empty.} + * @config{dump_pages, Display the contents of in-memory pages as they are verified\, using + * the application's message handler\, intended for debugging., a boolean flag; default \c + * false.} + * @config{strict, Treat any verification problem as an error; by default\, verify will + * warn\, but not fail\, in the case of errors that won't affect future behavior (for + * example\, a leaked block)., a boolean flag; default \c false.} * @configend * @ebusy_errors */ @@ -1799,48 +1712,40 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.begin_transaction, see dist/api_data.py} - * @config{ignore_prepare, whether to ignore the updates by other - * prepared transactions as part of read operations of this transaction. - * When \c true\, forces the transaction to be read-only. Use \c force - * to ignore prepared updates and permit writes (which can cause lost - * updates unless the application knows something about the relationship - * between prepared transactions and the updates that are ignoring - * them)., a string\, chosen from the following options: \c "false"\, \c - * "force"\, \c "true"; default \c false.} - * @config{isolation, the isolation level for this transaction; defaults - * to the session's isolation level., a string\, chosen from the - * following options: \c "read-uncommitted"\, \c "read-committed"\, \c - * "snapshot"; default empty.} - * @config{name, name of the transaction for tracing and debugging., a - * string; default empty.} - * @config{priority, priority of the transaction for resolving - * conflicts. Transactions with higher values are less likely to - * abort., an integer between -100 and 100; default \c 0.} - * @config{read_timestamp, read using the specified timestamp. The - * supplied value must not be older than the current oldest timestamp. - * See @ref transaction_timestamps., a string; default empty.} - * @config{roundup_timestamps = (, round up timestamps of the - * transaction. This setting alters the visibility expected in a - * transaction. See @ref transaction_timestamps., a set of related - * configuration options defined below.} - * @config{ prepared, applicable only for - * prepared transactions. Indicates if the prepare timestamp and the - * commit timestamp of this transaction can be rounded up. If the - * prepare timestamp is less than the oldest timestamp\, the prepare - * timestamp will be rounded to the oldest timestamp. If the commit - * timestamp is less than the prepare timestamp\, the commit timestamp - * will be rounded up to the prepare timestamp., a boolean flag; default - * \c false.} - * @config{ read, if the read - * timestamp is less than the oldest timestamp\, the read timestamp will - * be rounded up to the oldest timestamp., a boolean flag; default \c + * @config{ignore_prepare, whether to ignore the updates by other prepared transactions as + * part of read operations of this transaction. When \c true\, forces the transaction to be + * read-only. Use \c force to ignore prepared updates and permit writes (which can cause + * lost updates unless the application knows something about the relationship between + * prepared transactions and the updates that are ignoring them)., a string\, chosen from + * the following options: \c "false"\, \c "force"\, \c "true"; default \c false.} + * @config{isolation, the isolation level for this transaction; defaults to the session's + * isolation level., a string\, chosen from the following options: \c "read-uncommitted"\, + * \c "read-committed"\, \c "snapshot"; default empty.} + * @config{name, name of the transaction for tracing and debugging., a string; default + * empty.} + * @config{priority, priority of the transaction for resolving conflicts. Transactions with + * higher values are less likely to abort., an integer between -100 and 100; default \c 0.} + * @config{read_timestamp, read using the specified timestamp. The supplied value must not + * be older than the current oldest timestamp. See @ref transaction_timestamps., a string; + * default empty.} + * @config{roundup_timestamps = (, round up timestamps of the transaction. This setting + * alters the visibility expected in a transaction. See @ref transaction_timestamps., a set + * of related configuration options defined below.} + * @config{ + * prepared, applicable only for prepared transactions. Indicates if the prepare timestamp + * and the commit timestamp of this transaction can be rounded up. If the prepare timestamp + * is less than the oldest timestamp\, the prepare timestamp will be rounded to the oldest + * timestamp. If the commit timestamp is less than the prepare timestamp\, the commit + * timestamp will be rounded up to the prepare timestamp., a boolean flag; default \c * false.} + * @config{ read, if the read timestamp is less than the + * oldest timestamp\, the read timestamp will be rounded up to the oldest timestamp., a + * boolean flag; default \c false.} * @config{ ),,} * @config{snapshot, use a named\, in-memory snapshot\, see @ref * transaction_named_snapshots., a string; default empty.} - * @config{sync, whether to sync log records when the transaction - * commits\, inherited from ::wiredtiger_open \c transaction_sync., a - * boolean flag; default empty.} + * @config{sync, whether to sync log records when the transaction commits\, inherited from + * ::wiredtiger_open \c transaction_sync., a boolean flag; default empty.} * @configend * @errors */ @@ -1860,25 +1765,21 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.commit_transaction, see dist/api_data.py} - * @config{commit_timestamp, set the commit timestamp for the current - * transaction. The supplied value must not be older than the first - * commit timestamp set for the current transaction. The value must - * also not be older than the current oldest and stable timestamps. See + * @config{commit_timestamp, set the commit timestamp for the current transaction. The + * supplied value must not be older than the first commit timestamp set for the current + * transaction. The value must also not be older than the current oldest and stable + * timestamps. See @ref transaction_timestamps., a string; default empty.} + * @config{durable_timestamp, set the durable timestamp for the current transaction. The + * supplied value must not be older than the commit timestamp set for the current + * transaction. The value must also not be older than the current stable timestamp. See * @ref transaction_timestamps., a string; default empty.} - * @config{durable_timestamp, set the durable timestamp for the current - * transaction. The supplied value must not be older than the commit - * timestamp set for the current transaction. The value must also not - * be older than the current stable timestamp. See @ref - * transaction_timestamps., a string; default empty.} - * @config{sync, override whether to sync log records when the - * transaction commits\, inherited from ::wiredtiger_open \c - * transaction_sync. The \c background setting initiates a background - * synchronization intended to be used with a later call to - * WT_SESSION::transaction_sync. The \c off setting does not wait for - * record to be written or synchronized. The \c on setting forces log - * records to be written to the storage device., a string\, chosen from - * the following options: \c "background"\, \c "off"\, \c "on"; default - * empty.} + * @config{sync, override whether to sync log records when the transaction commits\, + * inherited from ::wiredtiger_open \c transaction_sync. The \c background setting + * initiates a background synchronization intended to be used with a later call to + * WT_SESSION::transaction_sync. The \c off setting does not wait for record to be written + * or synchronized. The \c on setting forces log records to be written to the storage + * device., a string\, chosen from the following options: \c "background"\, \c "off"\, \c + * "on"; default empty.} * @configend * @errors */ @@ -1901,10 +1802,9 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.prepare_transaction, see dist/api_data.py} - * @config{prepare_timestamp, set the prepare timestamp for the updates - * of the current transaction. The supplied value must not be older - * than any active read timestamps. See @ref transaction_timestamps., a - * string; default empty.} + * @config{prepare_timestamp, set the prepare timestamp for the updates of the current + * transaction. The supplied value must not be older than any active read timestamps. See + * @ref transaction_timestamps., a string; default empty.} * @configend * @errors */ @@ -1936,24 +1836,20 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.timestamp_transaction, see dist/api_data.py} - * @config{commit_timestamp, set the commit timestamp for the current - * transaction. The supplied value must not be older than the first - * commit timestamp set for the current transaction. The value must - * also not be older than the current oldest and stable timestamps. See + * @config{commit_timestamp, set the commit timestamp for the current transaction. The + * supplied value must not be older than the first commit timestamp set for the current + * transaction. The value must also not be older than the current oldest and stable + * timestamps. See @ref transaction_timestamps., a string; default empty.} + * @config{durable_timestamp, set the durable timestamp for the current transaction. The + * supplied value must not be older than the commit timestamp set for the current + * transaction. The value must also not be older than the current stable timestamp. See * @ref transaction_timestamps., a string; default empty.} - * @config{durable_timestamp, set the durable timestamp for the current - * transaction. The supplied value must not be older than the commit - * timestamp set for the current transaction. The value must also not - * be older than the current stable timestamp. See @ref - * transaction_timestamps., a string; default empty.} - * @config{prepare_timestamp, set the prepare timestamp for the updates - * of the current transaction. The supplied value must not be older - * than any active read timestamps. See @ref transaction_timestamps., a - * string; default empty.} - * @config{read_timestamp, read using the specified timestamp. The - * supplied value must not be older than the current oldest timestamp. - * This can only be set once for a transaction. See @ref - * transaction_timestamps., a string; default empty.} + * @config{prepare_timestamp, set the prepare timestamp for the updates of the current + * transaction. The supplied value must not be older than any active read timestamps. See + * @ref transaction_timestamps., a string; default empty.} + * @config{read_timestamp, read using the specified timestamp. The supplied value must not + * be older than the current oldest timestamp. This can only be set once for a transaction. + * See @ref transaction_timestamps., a string; default empty.} * @configend * @errors */ @@ -1967,13 +1863,12 @@ struct __wt_session { * hexadecimal encoding of the timestamp being queried. Must be large * enough to hold a NUL terminated, hex-encoded 8B timestamp (17 bytes). * @configstart{WT_SESSION.query_timestamp, see dist/api_data.py} - * @config{get, specify which timestamp to query: \c commit returns the - * most recently set commit_timestamp. \c first_commit returns the - * first set commit_timestamp. \c prepare returns the timestamp used in - * preparing a transaction. \c read returns the timestamp at which the - * transaction is reading at. See @ref transaction_timestamps., a - * string\, chosen from the following options: \c "commit"\, \c - * "first_commit"\, \c "prepare"\, \c "read"; default \c read.} + * @config{get, specify which timestamp to query: \c commit returns the most recently set + * commit_timestamp. \c first_commit returns the first set commit_timestamp. \c prepare + * returns the timestamp used in preparing a transaction. \c read returns the timestamp at + * which the transaction is reading at. See @ref transaction_timestamps., a string\, chosen + * from the following options: \c "commit"\, \c "first_commit"\, \c "prepare"\, \c "read"; + * default \c read.} * @configend * @errors * If the session is not in a transaction ::WT_NOTFOUND will be @@ -2005,25 +1900,21 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.checkpoint, see dist/api_data.py} - * @config{drop, specify a list of checkpoints to drop. The list may - * additionally contain one of the following keys: \c "from=all" to drop - * all checkpoints\, \c "from=<checkpoint>" to drop all checkpoints - * after and including the named checkpoint\, or \c "to=<checkpoint>" to - * drop all checkpoints before and including the named checkpoint. - * Checkpoints cannot be dropped while a hot backup is in progress or if - * open in a cursor., a list of strings; default empty.} - * @config{force, by default\, checkpoints may be skipped if the - * underlying object has not been modified\, this option forces the - * checkpoint., a boolean flag; default \c false.} - * @config{name, if set\, specify a name for the checkpoint (note that - * checkpoints including LSM trees may not be named)., a string; default - * empty.} - * @config{target, if non-empty\, checkpoint the list of objects., a - * list of strings; default empty.} - * @config{use_timestamp, by default\, create the checkpoint as of the - * last stable timestamp if timestamps are in use\, or all current - * updates if there is no stable timestamp set. If false\, this option - * generates a checkpoint with all updates including those later than + * @config{drop, specify a list of checkpoints to drop. The list may additionally contain + * one of the following keys: \c "from=all" to drop all checkpoints\, \c "from=<checkpoint>" + * to drop all checkpoints after and including the named checkpoint\, or \c + * "to=<checkpoint>" to drop all checkpoints before and including the named checkpoint. + * Checkpoints cannot be dropped while a hot backup is in progress or if open in a cursor., + * a list of strings; default empty.} + * @config{force, by default\, checkpoints may be skipped if the underlying object has not + * been modified\, this option forces the checkpoint., a boolean flag; default \c false.} + * @config{name, if set\, specify a name for the checkpoint (note that checkpoints including + * LSM trees may not be named)., a string; default empty.} + * @config{target, if non-empty\, checkpoint the list of objects., a list of strings; + * default empty.} + * @config{use_timestamp, by default\, create the checkpoint as of the last stable timestamp + * if timestamps are in use\, or all current updates if there is no stable timestamp set. + * If false\, this option generates a checkpoint with all updates including those later than * the timestamp., a boolean flag; default \c true.} * @configend * @errors @@ -2039,28 +1930,22 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.snapshot, see dist/api_data.py} - * @config{drop = (, if non-empty\, specifies which snapshots to drop. - * Where a group of snapshots are being dropped\, the order is based on - * snapshot creation order not alphanumeric name order., a set of - * related configuration options defined below.} - * @config{ all, drop all named snapshots., a - * boolean flag; default \c false.} + * @config{drop = (, if non-empty\, specifies which snapshots to drop. Where a group of + * snapshots are being dropped\, the order is based on snapshot creation order not + * alphanumeric name order., a set of related configuration options defined below.} + * @config{ all, drop all named snapshots., a boolean flag; default + * \c false.} + * @config{ before, drop all snapshots up to but not + * including the specified name., a string; default empty.} * @config{ - * before, drop all snapshots up to but not including the specified + * names, drop specific named snapshots., a list of strings; default empty.} + * @config{ to, drop all snapshots up to and including the specified * name., a string; default empty.} - * @config{ - * names, drop specific named snapshots., a list of strings; default - * empty.} - * @config{ to, drop all snapshots up to - * and including the specified name., a string; default empty.} - * @config{ - * ),,} - * @config{include_updates, make updates from the current transaction - * visible to users of the named snapshot. Transactions started with - * such a named snapshot are restricted to being read-only., a boolean - * flag; default \c false.} - * @config{name, specify a name for the snapshot., a string; default - * empty.} + * @config{ ),,} + * @config{include_updates, make updates from the current transaction visible to users of + * the named snapshot. Transactions started with such a named snapshot are restricted to + * being read-only., a boolean flag; default \c false.} + * @config{name, specify a name for the snapshot., a string; default empty.} * @configend * @errors */ @@ -2093,9 +1978,9 @@ struct __wt_session { * * @param session the session handle * @configstart{WT_SESSION.transaction_sync, see dist/api_data.py} - * @config{timeout_ms, maximum amount of time to wait for background - * sync to complete in milliseconds. A value of zero disables the - * timeout and returns immediately., an integer; default \c 1200000.} + * @config{timeout_ms, maximum amount of time to wait for background sync to complete in + * milliseconds. A value of zero disables the timeout and returns immediately., an integer; + * default \c 1200000.} * @configend * @errors */ @@ -2152,22 +2037,18 @@ struct __wt_connection { * @param connection the connection handle * @param uri the connection handle * @configstart{WT_CONNECTION.async_new_op, see dist/api_data.py} - * @config{append, append the value as a new record\, creating a new - * record number key; valid only for operations with record number - * keys., a boolean flag; default \c false.} - * @config{overwrite, configures whether the cursor's insert\, update - * and remove methods check the existing state of the record. If \c - * overwrite is \c false\, WT_CURSOR::insert fails with - * ::WT_DUPLICATE_KEY if the record exists\, WT_CURSOR::update and - * WT_CURSOR::remove fail with ::WT_NOTFOUND if the record does not - * exist., a boolean flag; default \c true.} - * @config{raw, ignore the encodings for the key and value\, manage data - * as if the formats were \c "u". See @ref cursor_raw for details., a - * boolean flag; default \c false.} - * @config{timeout, maximum amount of time to allow for compact in - * seconds. The actual amount of time spent in compact may exceed the - * configured value. A value of zero disables the timeout., an integer; - * default \c 1200.} + * @config{append, append the value as a new record\, creating a new record number key; + * valid only for operations with record number keys., a boolean flag; default \c false.} + * @config{overwrite, configures whether the cursor's insert\, update and remove methods + * check the existing state of the record. If \c overwrite is \c false\, WT_CURSOR::insert + * fails with ::WT_DUPLICATE_KEY if the record exists\, WT_CURSOR::update and + * WT_CURSOR::remove fail with ::WT_NOTFOUND if the record does not exist., a boolean flag; + * default \c true.} + * @config{raw, ignore the encodings for the key and value\, manage data as if the formats + * were \c "u". See @ref cursor_raw for details., a boolean flag; default \c false.} + * @config{timeout, maximum amount of time to allow for compact in seconds. The actual + * amount of time spent in compact may exceed the configured value. A value of zero + * disables the timeout., an integer; default \c 1200.} * @configend * @param callback the operation callback * @param[out] asyncopp the new op handle @@ -2191,13 +2072,11 @@ struct __wt_connection { * * @param connection the connection handle * @configstart{WT_CONNECTION.close, see dist/api_data.py} - * @config{leak_memory, don't free memory during close., a boolean flag; - * default \c false.} - * @config{use_timestamp, by default\, create the close checkpoint as of - * the last stable timestamp if timestamps are in use\, or all current - * updates if there is no stable timestamp set. If false\, this option - * generates a checkpoint with all updates., a boolean flag; default \c - * true.} + * @config{leak_memory, don't free memory during close., a boolean flag; default \c false.} + * @config{use_timestamp, by default\, create the close checkpoint as of the last stable + * timestamp if timestamps are in use\, or all current updates if there is no stable + * timestamp set. If false\, this option generates a checkpoint with all updates., a + * boolean flag; default \c true.} * @configend * @errors */ @@ -2213,18 +2092,12 @@ struct __wt_connection { * * @param connection the connection handle * @configstart{WT_CONNECTION.debug_info, see dist/api_data.py} - * @config{cache, print cache information., a boolean flag; default \c - * false.} - * @config{cursors, print all open cursor information., a boolean flag; - * default \c false.} - * @config{handles, print open handles information., a boolean flag; - * default \c false.} - * @config{log, print log information., a boolean flag; default \c - * false.} - * @config{sessions, print open session information., a boolean flag; - * default \c false.} - * @config{txn, print global txn information., a boolean flag; default - * \c false.} + * @config{cache, print cache information., a boolean flag; default \c false.} + * @config{cursors, print all open cursor information., a boolean flag; default \c false.} + * @config{handles, print open handles information., a boolean flag; default \c false.} + * @config{log, print log information., a boolean flag; default \c false.} + * @config{sessions, print open session information., a boolean flag; default \c false.} + * @config{txn, print global txn information., a boolean flag; default \c false.} * @configend * @errors */ @@ -2238,271 +2111,224 @@ struct __wt_connection { * * @param connection the connection handle * @configstart{WT_CONNECTION.reconfigure, see dist/api_data.py} - * @config{async = (, asynchronous operations configuration options., a - * set of related configuration options defined below.} - * @config{ enabled, enable asynchronous - * operation., a boolean flag; default \c false.} - * @config{ ops_max, maximum number of expected - * simultaneous asynchronous operations., an integer between 1 and 4096; - * default \c 1024.} - * @config{ threads, the number - * of worker threads to service asynchronous requests. Each worker - * thread uses a session from the configured session_max., an integer - * between 1 and 20; default \c 2.} + * @config{async = (, asynchronous operations configuration options., a set of related + * configuration options defined below.} + * @config{ enabled, enable + * asynchronous operation., a boolean flag; default \c false.} + * @config{ ops_max, maximum number of expected simultaneous + * asynchronous operations., an integer between 1 and 4096; default \c 1024.} + * @config{ threads, the number of worker threads to service + * asynchronous requests. Each worker thread uses a session from the configured + * session_max., an integer between 1 and 20; default \c 2.} * @config{ ),,} - * @config{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 \c 0.} - * @config{cache_overflow = (, cache overflow configuration options., a - * set of related configuration options defined below.} - * @config{ file_max, The maximum number of bytes - * that WiredTiger is allowed to use for its cache overflow mechanism. - * If the cache overflow file exceeds this size\, a panic will be - * triggered. The default value means that the cache overflow 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 \c 0.} + * @config{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 \c 0.} + * @config{cache_overflow = (, cache overflow configuration options., a set of related + * configuration options defined below.} + * @config{ file_max, The + * maximum number of bytes that WiredTiger is allowed to use for its cache overflow + * mechanism. If the cache overflow file exceeds this size\, a panic will be triggered. + * The default value means that the cache overflow 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 \c 0.} * @config{ ),,} - * @config{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 \c 8.} - * @config{cache_size, maximum heap memory to allocate for the cache. A - * database should configure either \c cache_size or \c shared_cache but - * not both., an integer between 1MB and 10TB; default \c 100MB.} - * @config{checkpoint = (, periodically checkpoint the database. - * Enabling the checkpoint server uses a session from the configured - * session_max., a set of related configuration options defined below.} - * @config{ 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 \c 0.} - * @config{ wait, seconds to wait between each - * checkpoint; setting this value above 0 configures periodic - * checkpoints., an integer between 0 and 100000; default \c 0.} + * @config{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 \c 8.} + * @config{cache_size, maximum heap memory to allocate for the cache. A database should + * configure either \c cache_size or \c shared_cache but not both., an integer between 1MB + * and 10TB; default \c 100MB.} + * @config{checkpoint = (, periodically checkpoint the database. Enabling the checkpoint + * server uses a session from the configured session_max., a set of related configuration + * options defined below.} + * @config{ 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 \c 0.} + * @config{ wait, seconds to wait between each checkpoint; setting + * this value above 0 configures periodic checkpoints., an integer between 0 and 100000; + * default \c 0.} * @config{ ),,} - * @config{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 below.} - * @config{ release, compatibility release - * version string., a string; default empty.} + * @config{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 below.} + * @config{ release, compatibility release version string., a string; + * default empty.} * @config{ ),,} - * @config{debug_mode = (, control the settings of various extended - * debugging features., a set of related configuration options defined - * below.} - * @config{ checkpoint_retention, adjust - * log archiving to retain the log records of this number of - * checkpoints. Zero or one means perform normal archiving., an integer - * between 0 and 1024; default \c 0.} + * @config{debug_mode = (, control the settings of various extended debugging features., a + * set of related configuration options defined below.} * @config{ - * eviction, if true\, modify internal algorithms to change skew to - * force lookaside 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 - * \c false.} - * @config{ 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; + * checkpoint_retention, adjust log archiving to retain the log records of this number of + * checkpoints. Zero or one means perform normal archiving., an integer between 0 and 1024; * default \c 0.} + * @config{ eviction, if true\, modify internal + * algorithms to change skew to force lookaside 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 \c false.} + * @config{ 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 \c 0.} * @config{ table_logging, if - * true\, write transaction related information to the log for all - * operations\, even operations for tables with logging turned off. - * This setting introduces a log format change that may break older - * versions of WiredTiger. These operations are informational and - * skipped in recovery., a boolean flag; default \c false.} - * @config{ - * ),,} - * @config{error_prefix, prefix string for error messages., a string; - * default empty.} - * @config{eviction = (, eviction configuration options., a set of - * related configuration options defined below.} + * true\, write transaction related information to the log for all operations\, even + * operations for tables with logging turned off. This setting introduces a log format + * change that may break older versions of WiredTiger. These operations are informational + * and skipped in recovery., a boolean flag; default \c false.} + * @config{ ),,} + * @config{error_prefix, prefix string for error messages., a string; default empty.} + * @config{eviction = (, eviction configuration options., a set of related configuration + * options defined below.} * @config{ 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 \c 8.} - * @config{ 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 \c 1.} + * 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 \c + * 8.} + * @config{ 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 \c 1.} * @config{ ),,} - * @config{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 \c cache_size. Ignored if set to zero or \c - * in_memory is \c true., an integer between 0 and 10TB; default \c 1.} - * @config{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 \c cache_size., an integer between 1 and 10TB; - * default \c 5.} - * @config{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 \c cache_size. This setting only - * alters behavior if it is lower than eviction_trigger., an integer - * between 1 and 10TB; default \c 20.} - * @config{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 \c cache_size., an integer between 10 and 10TB; default \c - * 80.} - * @config{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 \c cache_size., an integer between 10 and 10TB; - * default \c 95.} - * @config{file_manager = (, control how file handles are managed., a - * set of related configuration options defined below.} - * @config{ 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 \c 250.} - * @config{ 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 \c 30.} - * @config{ 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 \c 10.} + * @config{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 \c cache_size. Ignored if set to zero or \c in_memory + * is \c true., an integer between 0 and 10TB; default \c 1.} + * @config{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 \c cache_size., an integer between 1 and 10TB; default \c 5.} + * @config{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 \c cache_size. This setting only alters behavior if + * it is lower than eviction_trigger., an integer between 1 and 10TB; default \c 20.} + * @config{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 \c cache_size., an integer between 10 and 10TB; default \c 80.} + * @config{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 \c cache_size., an integer between 10 and 10TB; default \c 95.} + * @config{file_manager = (, control how file handles are managed., a set of related + * configuration options defined below.} + * @config{ + * 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 \c 250.} + * @config{ 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 \c 30.} + * @config{ 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 \c 10.} * @config{ ),,} - * @config{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 below.} + * @config{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 below.} * @config{ 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 \c 0.} + * 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 \c 0.} * @config{ ),,} - * @config{log = (, enable logging. Enabling logging uses three - * sessions from the configured session_max., a set of related - * configuration options defined below.} - * @config{ archive, automatically archive - * unneeded log files., a boolean flag; default \c true.} - * @config{ os_cache_dirty_pct, maximum dirty - * system buffer cache usage\, as a percentage of the log's \c 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 \c 0.} - * @config{ prealloc, pre-allocate log files., a + * @config{log = (, enable logging. Enabling logging uses three sessions from the + * configured session_max., a set of related configuration options defined below.} + * @config{ archive, automatically archive unneeded log files., a * boolean flag; default \c true.} - * @config{ - * zero_fill, manually write zeroes into log files., a boolean flag; - * default \c false.} + * @config{ os_cache_dirty_pct, + * maximum dirty system buffer cache usage\, as a percentage of the log's \c 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 \c 0.} + * @config{ prealloc, pre-allocate log files., a boolean flag; + * default \c true.} + * @config{ zero_fill, manually write zeroes into + * log files., a boolean flag; default \c false.} * @config{ ),,} - * @config{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 below.} - * @config{ merge, merge LSM - * chunks where possible., a boolean flag; default \c true.} - * @config{ 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 + * @config{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 below.} + * @config{ merge, merge LSM chunks where + * possible., a boolean flag; default \c true.} + * @config{ + * 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 \c 4.} * @config{ ),,} - * @config{operation_tracking = (, enable tracking of - * performance-critical functions. See @ref operation_tracking for more - * information., a set of related configuration options defined below.} + * @config{operation_tracking = (, enable tracking of performance-critical functions. See + * @ref operation_tracking for more information., a set of related configuration options + * defined below.} * @config{ enabled, enable operation tracking * subsystem., a boolean flag; default \c false.} - * @config{ 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 @ref absolute_path for more - * information)., a string; default \c ".".} + * @config{ 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 @ref absolute_path for more information)., a string; default \c ".".} * @config{ ),,} - * @config{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 below.} - * @config{ chunk, the - * granularity that a shared cache is redistributed., an integer between - * 1MB and 10TB; default \c 10MB.} - * @config{ name, - * the name of a cache that is shared between databases or \c "none" - * when no shared cache is configured., a string; default \c none.} - * @config{ quota, maximum size of cache this - * database can be allocated from the shared cache. Defaults to the - * entire shared cache size., an integer; default \c 0.} - * @config{ 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; + * @config{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 + * below.} + * @config{ chunk, the granularity that a shared cache is + * redistributed., an integer between 1MB and 10TB; default \c 10MB.} + * @config{ name, the name of a cache that is shared between + * databases or \c "none" when no shared cache is configured., a string; default \c none.} + * @config{ quota, maximum size of cache this database can be + * allocated from the shared cache. Defaults to the entire shared cache size., an integer; * default \c 0.} - * @config{ 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 \c - * 500MB.} + * @config{ 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 \c 0.} + * @config{ + * 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 \c 500MB.} * @config{ ),,} - * @config{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 \c statistics_log - * configuration. See @ref statistics for more information., a list\, - * with values chosen from the following options: \c "all"\, \c - * "cache_walk"\, \c "fast"\, \c "none"\, \c "clear"\, \c "tree_walk"; - * default \c none.} - * @config{statistics_log = (, log any statistics the database is - * configured to maintain\, to a file. See @ref statistics for more - * information. Enabling the statistics log server uses a session from - * the configured session_max., a set of related configuration options + * @config{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 \c statistics_log configuration. See @ref + * statistics for more information., a list\, with values chosen from the following options: + * \c "all"\, \c "cache_walk"\, \c "fast"\, \c "none"\, \c "clear"\, \c "tree_walk"; default + * \c none.} + * @config{statistics_log = (, log any statistics the database is configured to maintain\, + * to a file. See @ref statistics for more information. Enabling the statistics log server + * uses a session from the configured session_max., a set of related configuration options * defined below.} - * @config{ json, encode - * statistics in JSON format., a boolean flag; default \c false.} - * @config{ on_close, log statistics on database - * close., a boolean flag; default \c false.} - * @config{ sources, if non-empty\, include - * statistics for the list of data source URIs\, if they are open at the - * time of the statistics logging. The list may include URIs matching a - * single data source ("table:mytable")\, or a URI matching all data - * sources of a particular type ("table:")., a list of strings; default - * empty.} - * @config{ timestamp, a timestamp - * prepended to each log record\, may contain strftime conversion - * specifications\, when \c json is configured\, defaults to \c + * @config{ json, encode statistics in JSON format., + * a boolean flag; default \c false.} + * @config{ on_close, log + * statistics on database close., a boolean flag; default \c false.} + * @config{ sources, if non-empty\, include statistics for the list + * of data source URIs\, if they are open at the time of the statistics logging. The list + * may include URIs matching a single data source ("table:mytable")\, or a URI matching all + * data sources of a particular type ("table:")., a list of strings; default empty.} + * @config{ timestamp, a timestamp prepended to each log record\, may + * contain strftime conversion specifications\, when \c json is configured\, defaults to \c * "%FT%Y.000Z"., a string; default \c "%b %d %H:%M:%S".} - * @config{ 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 \c 0.} - * @config{ ),,} - * @config{verbose, enable messages for various events. Options are - * given as a list\, such as - * <code>"verbose=[evictserver\,read]"</code>., a list\, with values - * chosen from the following options: \c "api"\, \c "block"\, \c - * "checkpoint"\, \c "checkpoint_progress"\, \c "compact"\, \c - * "compact_progress"\, \c "error_returns"\, \c "evict"\, \c - * "evict_stuck"\, \c "evictserver"\, \c "fileops"\, \c "handleops"\, \c - * "log"\, \c "lookaside"\, \c "lookaside_activity"\, \c "lsm"\, \c - * "lsm_manager"\, \c "metadata"\, \c "mutex"\, \c "overflow"\, \c - * "read"\, \c "rebalance"\, \c "reconcile"\, \c "recovery"\, \c - * "recovery_progress"\, \c "salvage"\, \c "shared_cache"\, \c "split"\, - * \c "temporary"\, \c "thread_group"\, \c "timestamp"\, \c - * "transaction"\, \c "verify"\, \c "version"\, \c "write"; default - * empty.} + * @config{ + * 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 \c 0.} + * @config{ + * ),,} + * @config{verbose, enable messages for various events. Options are given as a list\, such + * as <code>"verbose=[evictserver\,read]"</code>., a list\, with values chosen from the + * following options: \c "api"\, \c "block"\, \c "checkpoint"\, \c "checkpoint_progress"\, + * \c "compact"\, \c "compact_progress"\, \c "error_returns"\, \c "evict"\, \c + * "evict_stuck"\, \c "evictserver"\, \c "fileops"\, \c "handleops"\, \c "log"\, \c + * "lookaside"\, \c "lookaside_activity"\, \c "lsm"\, \c "lsm_manager"\, \c "metadata"\, \c + * "mutex"\, \c "overflow"\, \c "read"\, \c "rebalance"\, \c "reconcile"\, \c "recovery"\, + * \c "recovery_progress"\, \c "salvage"\, \c "shared_cache"\, \c "split"\, \c "temporary"\, + * \c "thread_group"\, \c "timestamp"\, \c "transaction"\, \c "verify"\, \c "version"\, \c + * "write"; default empty.} * @configend * @errors */ @@ -2564,21 +2390,18 @@ struct __wt_connection { * connection's event handler is used. See @ref event_message_handling * for more information. * @configstart{WT_CONNECTION.open_session, see dist/api_data.py} - * @config{cache_cursors, enable caching of cursors for reuse. Any - * calls to WT_CURSOR::close for a cursor created in this session will - * mark the cursor as cached and keep it available to be reused for - * later calls to WT_SESSION::open_cursor. Cached cursors may be - * eventually closed. This value is inherited from ::wiredtiger_open \c + * @config{cache_cursors, enable caching of cursors for reuse. Any calls to + * WT_CURSOR::close for a cursor created in this session will mark the cursor as cached and + * keep it available to be reused for later calls to WT_SESSION::open_cursor. Cached + * cursors may be eventually closed. This value is inherited from ::wiredtiger_open \c * cache_cursors., a boolean flag; default \c true.} - * @config{ignore_cache_size, when set\, operations performed by this - * session ignore the cache size and are not blocked when the cache is - * full. Note that use of this option for operations that create cache - * pressure can starve ordinary sessions that obey the cache size., a - * boolean flag; default \c false.} - * @config{isolation, the default isolation level for operations in this - * session., a string\, chosen from the following options: \c - * "read-uncommitted"\, \c "read-committed"\, \c "snapshot"; default \c - * read-committed.} + * @config{ignore_cache_size, when set\, operations performed by this session ignore the + * cache size and are not blocked when the cache is full. Note that use of this option for + * operations that create cache pressure can starve ordinary sessions that obey the cache + * size., a boolean flag; default \c false.} + * @config{isolation, the default isolation level for operations in this session., a + * string\, chosen from the following options: \c "read-uncommitted"\, \c "read-committed"\, + * \c "snapshot"; default \c read-committed.} * @configend * @param[out] sessionp the new session handle * @errors @@ -2602,23 +2425,19 @@ struct __wt_connection { * hexadecimal encoding of the timestamp being queried. Must be large * enough to hold a NUL terminated, hex-encoded 8B timestamp (17 bytes). * @configstart{WT_CONNECTION.query_timestamp, see dist/api_data.py} - * @config{get, specify which timestamp to query: \c all_committed - * returns the largest timestamp such that all timestamps up to that - * value have committed\, \c all_durable returns the largest timestamp - * such that all timestamps up to that value have been made durable\, \c - * last_checkpoint returns the timestamp of the most recent stable - * checkpoint\, \c oldest returns the most recent \c oldest_timestamp - * set with WT_CONNECTION::set_timestamp\, \c oldest_reader returns the - * minimum of the read timestamps of all active readers \c pinned - * returns the minimum of the \c oldest_timestamp and the read - * timestamps of all active readers\, \c recovery returns the timestamp - * of the most recent stable checkpoint taken prior to a shutdown and \c - * stable returns the most recent \c stable_timestamp set with - * WT_CONNECTION::set_timestamp. See @ref transaction_timestamps., a - * string\, chosen from the following options: \c "all_committed"\, \c - * "all_durable"\, \c "last_checkpoint"\, \c "oldest"\, \c - * "oldest_reader"\, \c "pinned"\, \c "recovery"\, \c "stable"; default - * \c all_durable.} + * @config{get, specify which timestamp to query: \c all_committed returns the largest + * timestamp such that all timestamps up to that value have committed\, \c all_durable + * returns the largest timestamp such that all timestamps up to that value have been made + * durable\, \c last_checkpoint returns the timestamp of the most recent stable checkpoint\, + * \c oldest returns the most recent \c oldest_timestamp set with + * WT_CONNECTION::set_timestamp\, \c oldest_reader returns the minimum of the read + * timestamps of all active readers \c pinned returns the minimum of the \c oldest_timestamp + * and the read timestamps of all active readers\, \c recovery returns the timestamp of the + * most recent stable checkpoint taken prior to a shutdown and \c stable returns the most + * recent \c stable_timestamp set with WT_CONNECTION::set_timestamp. See @ref + * transaction_timestamps., a string\, chosen from the following options: \c + * "all_committed"\, \c "all_durable"\, \c "last_checkpoint"\, \c "oldest"\, \c + * "oldest_reader"\, \c "pinned"\, \c "recovery"\, \c "stable"; default \c all_durable.} * @configend * @errors * If there is no matching timestamp (e.g., if this method is called @@ -2638,40 +2457,33 @@ struct __wt_connection { * * @param connection the connection handle * @configstart{WT_CONNECTION.set_timestamp, see dist/api_data.py} - * @config{commit_timestamp, (deprecated) reset the maximum commit - * timestamp tracked by WiredTiger. This will cause future calls to - * WT_CONNECTION::query_timestamp to ignore commit timestamps greater - * than the specified value until the next commit moves the tracked - * commit timestamp forwards. This is only intended for use where the - * application is rolling back locally committed transactions. The - * supplied value must not be older than the current oldest and stable - * timestamps. See @ref transaction_timestamps., a string; default - * empty.} - * @config{durable_timestamp, reset the maximum durable timestamp - * tracked by WiredTiger. This will cause future calls to - * WT_CONNECTION::query_timestamp to ignore durable timestamps greater - * than the specified value until the next durable timestamp moves the - * tracked durable timestamp forwards. This is only intended for use - * where the application is rolling back locally committed transactions. - * The supplied value must not be older than the current oldest and - * stable timestamps. See @ref transaction_timestamps., a string; - * default empty.} - * @config{force, set timestamps even if they violate normal ordering - * requirements. For example allow the \c oldest_timestamp to move - * backwards., a boolean flag; default \c false.} - * @config{oldest_timestamp, future commits and queries will be no - * earlier than the specified timestamp. Supplied values must be - * monotonically increasing\, any attempt to set the value to older than - * the current is silently ignored. The supplied value must not be - * newer than the current stable timestamp. See @ref - * transaction_timestamps., a string; default empty.} - * @config{stable_timestamp, checkpoints will not include commits that - * are newer than the specified timestamp in tables configured with \c - * log=(enabled=false). Supplied values must be monotonically - * increasing\, any attempt to set the value to older than the current - * is silently ignored. The supplied value must not be older than the - * current oldest timestamp. See @ref transaction_timestamps., a + * @config{commit_timestamp, (deprecated) reset the maximum commit timestamp tracked by + * WiredTiger. This will cause future calls to WT_CONNECTION::query_timestamp to ignore + * commit timestamps greater than the specified value until the next commit moves the + * tracked commit timestamp forwards. This is only intended for use where the application + * is rolling back locally committed transactions. The supplied value must not be older + * than the current oldest and stable timestamps. See @ref transaction_timestamps., a * string; default empty.} + * @config{durable_timestamp, reset the maximum durable timestamp tracked by WiredTiger. + * This will cause future calls to WT_CONNECTION::query_timestamp to ignore durable + * timestamps greater than the specified value until the next durable timestamp moves the + * tracked durable timestamp forwards. This is only intended for use where the application + * is rolling back locally committed transactions. The supplied value must not be older + * than the current oldest and stable timestamps. See @ref transaction_timestamps., a + * string; default empty.} + * @config{force, set timestamps even if they violate normal ordering requirements. For + * example allow the \c oldest_timestamp to move backwards., a boolean flag; default \c + * false.} + * @config{oldest_timestamp, future commits and queries will be no earlier than the + * specified timestamp. Supplied values must be monotonically increasing\, any attempt to + * set the value to older than the current is silently ignored. The supplied value must not + * be newer than the current stable timestamp. See @ref transaction_timestamps., a string; + * default empty.} + * @config{stable_timestamp, checkpoints will not include commits that are newer than the + * specified timestamp in tables configured with \c log=(enabled=false). Supplied values + * must be monotonically increasing\, any attempt to set the value to older than the current + * is silently ignored. The supplied value must not be older than the current oldest + * timestamp. See @ref transaction_timestamps., a string; default empty.} * @configend * @errors */ @@ -2719,20 +2531,17 @@ struct __wt_connection { * search the current application binary for the initialization * function, see @ref extensions for more details. * @configstart{WT_CONNECTION.load_extension, see dist/api_data.py} - * @config{config, configuration string passed to the entry point of the - * extension as its WT_CONFIG_ARG argument., a string; default empty.} - * @config{early_load, whether this extension should be loaded at the - * beginning of ::wiredtiger_open. Only applicable to extensions loaded - * via the wiredtiger_open configurations string., a boolean flag; - * default \c false.} - * @config{entry, the entry point of the extension\, called to - * initialize the extension when it is loaded. The signature of the - * function must match ::wiredtiger_extension_init., a string; default - * \c wiredtiger_extension_init.} - * @config{terminate, an optional function in the extension that is - * called before the extension is unloaded during WT_CONNECTION::close. - * The signature of the function must match - * ::wiredtiger_extension_terminate., a string; default \c + * @config{config, configuration string passed to the entry point of the extension as its + * WT_CONFIG_ARG argument., a string; default empty.} + * @config{early_load, whether this extension should be loaded at the beginning of + * ::wiredtiger_open. Only applicable to extensions loaded via the wiredtiger_open + * configurations string., a boolean flag; default \c false.} + * @config{entry, the entry point of the extension\, called to initialize the extension when + * it is loaded. The signature of the function must match ::wiredtiger_extension_init., a + * string; default \c wiredtiger_extension_init.} + * @config{terminate, an optional function in the extension that is called before the + * extension is unloaded during WT_CONNECTION::close. The signature of the function must + * match ::wiredtiger_extension_terminate., a string; default \c * wiredtiger_extension_terminate.} * @configend * @errors @@ -2875,393 +2684,336 @@ struct __wt_connection { * event handler is installed that writes error messages to stderr. See * @ref event_message_handling for more information. * @configstart{wiredtiger_open, see dist/api_data.py} - * @config{async = (, asynchronous operations configuration options., a set of - * related configuration options defined below.} - * @config{ enabled, enable asynchronous operation., a - * boolean flag; default \c false.} - * @config{ ops_max, - * maximum number of expected simultaneous asynchronous operations., an integer - * between 1 and 4096; default \c 1024.} - * @config{ - * threads, the number of worker threads to service asynchronous requests. Each - * worker thread uses a session from the configured session_max., an integer - * between 1 and 20; default \c 2.} - * @config{ ),,} - * @config{buffer_alignment, in-memory alignment (in bytes) for buffers used for - * I/O. The default value of -1 indicates a platform-specific alignment value - * should be used (4KB on Linux systems when direct I/O is configured\, zero - * elsewhere)., an integer between -1 and 1MB; default \c -1.} - * @config{builtin_extension_config, A structure where the keys are the names of - * builtin extensions and the values are passed to WT_CONNECTION::load_extension - * as the \c config parameter (for example\, - * <code>builtin_extension_config={zlib={compression_level=3}}</code>)., a - * string; default empty.} - * @config{cache_cursors, enable caching of cursors for reuse. This is the - * default value for any sessions created\, and can be overridden in configuring - * \c cache_cursors in WT_CONNECTION.open_session., a boolean flag; default \c - * true.} - * @config{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 \c - * 0.} - * @config{cache_overflow = (, cache overflow configuration options., a set of - * related configuration options defined below.} - * @config{ file_max, The maximum number of bytes that - * WiredTiger is allowed to use for its cache overflow mechanism. If the cache - * overflow file exceeds this size\, a panic will be triggered. The default - * value means that the cache overflow 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 \c 0.} + * @config{async = (, asynchronous operations configuration options., a set of related configuration + * options defined below.} + * @config{ enabled, enable asynchronous operation., + * a boolean flag; default \c false.} + * @config{ ops_max, maximum number of + * expected simultaneous asynchronous operations., an integer between 1 and 4096; default \c 1024.} + * @config{ threads, the number of worker threads to service asynchronous + * requests. Each worker thread uses a session from the configured session_max., an integer between + * 1 and 20; default \c 2.} * @config{ ),,} - * @config{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 \c 8.} - * @config{cache_size, maximum heap memory to allocate for the cache. A - * database should configure either \c cache_size or \c shared_cache but not - * both., an integer between 1MB and 10TB; default \c 100MB.} - * @config{checkpoint = (, periodically checkpoint the database. Enabling the - * checkpoint server uses a session from the configured session_max., a set of - * related configuration options defined below.} - * @config{ 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 \c 0.} - * @config{ wait, seconds to wait between - * each checkpoint; setting this value above 0 configures periodic checkpoints., - * an integer between 0 and 100000; default \c 0.} + * @config{buffer_alignment, in-memory alignment (in bytes) for buffers used for I/O. The default + * value of -1 indicates a platform-specific alignment value should be used (4KB on Linux systems + * when direct I/O is configured\, zero elsewhere)., an integer between -1 and 1MB; default \c -1.} + * @config{builtin_extension_config, A structure where the keys are the names of builtin extensions + * and the values are passed to WT_CONNECTION::load_extension as the \c config parameter (for + * example\, <code>builtin_extension_config={zlib={compression_level=3}}</code>)., a string; default + * empty.} + * @config{cache_cursors, enable caching of cursors for reuse. This is the default value for any + * sessions created\, and can be overridden in configuring \c cache_cursors in + * WT_CONNECTION.open_session., a boolean flag; default \c true.} + * @config{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 \c 0.} + * @config{cache_overflow = (, cache overflow configuration options., a set of related configuration + * options defined below.} + * @config{ file_max, The maximum number of bytes + * that WiredTiger is allowed to use for its cache overflow mechanism. If the cache overflow file + * exceeds this size\, a panic will be triggered. The default value means that the cache overflow + * 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 \c 0.} * @config{ ),,} - * @config{checkpoint_sync, flush files to stable storage when closing or - * writing checkpoints., a boolean flag; default \c true.} - * @config{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 + * @config{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 \c + * 8.} + * @config{cache_size, maximum heap memory to allocate for the cache. A database should configure + * either \c cache_size or \c shared_cache but not both., an integer between 1MB and 10TB; default + * \c 100MB.} + * @config{checkpoint = (, periodically checkpoint the database. Enabling the checkpoint server + * uses a session from the configured session_max., a set of related configuration options defined * below.} - * @config{ release, compatibility release - * version string., a string; default empty.} + * @config{ 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 \c 0.} + * @config{ wait, seconds to wait between each + * checkpoint; setting this value above 0 configures periodic checkpoints., an integer between 0 and + * 100000; default \c 0.} + * @config{ ),,} + * @config{checkpoint_sync, flush files to stable storage when closing or writing checkpoints., a + * boolean flag; default \c true.} + * @config{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 below.} + * @config{ release, + * compatibility release version string., a string; default empty.} * @config{ - * require_max, required maximum compatibility version of existing data files. - * Must be greater than or equal to any release version set in the \c release - * setting. Has no effect if creating the database., a string; default empty.} - * @config{ require_min, required minimum compatibility - * version of existing data files. Must be less than or equal to any release - * version set in the \c release setting. Has no effect if creating the + * require_max, required maximum compatibility version of existing data files. Must be greater than + * or equal to any release version set in the \c release setting. Has no effect if creating the * database., a string; default empty.} + * @config{ require_min, required + * minimum compatibility version of existing data files. Must be less than or equal to any release + * version set in the \c release setting. Has no effect if creating the database., a string; + * default empty.} * @config{ ),,} - * @config{config_base, write the base configuration file if creating the - * database. If \c false in the config passed directly to ::wiredtiger_open\, - * will ignore any existing base configuration file in addition to not creating - * one. See @ref config_base for more information., a boolean flag; default \c - * true.} - * @config{create, create the database if it does not exist., a boolean flag; - * default \c false.} - * @config{debug_mode = (, control the settings of various extended debugging - * features., a set of related configuration options defined below.} - * @config{ checkpoint_retention, adjust log archiving to - * retain the log records of this number of checkpoints. Zero or one means - * perform normal archiving., an integer between 0 and 1024; default \c 0.} - * @config{ eviction, if true\, modify internal - * algorithms to change skew to force lookaside 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 \c false.} - * @config{ 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 \c - * 0.} - * @config{ table_logging, if true\, write - * transaction related information to the log for all operations\, even - * operations for tables with logging turned off. This setting introduces a log - * format change that may break older versions of WiredTiger. These operations - * are informational and skipped in recovery., a boolean flag; default \c - * false.} + * @config{config_base, write the base configuration file if creating the database. If \c false in + * the config passed directly to ::wiredtiger_open\, will ignore any existing base configuration + * file in addition to not creating one. See @ref config_base for more information., a boolean + * flag; default \c true.} + * @config{create, create the database if it does not exist., a boolean flag; default \c false.} + * @config{debug_mode = (, control the settings of various extended debugging features., a set of + * related configuration options defined below.} + * @config{ + * checkpoint_retention, adjust log archiving to retain the log records of this number of + * checkpoints. Zero or one means perform normal archiving., an integer between 0 and 1024; default + * \c 0.} + * @config{ eviction, if true\, modify internal algorithms to change + * skew to force lookaside 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 \c false.} + * @config{ 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 \c 0.} + * @config{ + * table_logging, if true\, write transaction related information to the log for all operations\, + * even operations for tables with logging turned off. This setting introduces a log format change + * that may break older versions of WiredTiger. These operations are informational and skipped in + * recovery., a boolean flag; default \c false.} * @config{ ),,} - * @config{direct_io, Use \c O_DIRECT on POSIX systems\, and \c - * FILE_FLAG_NO_BUFFERING on Windows to access files. Options are given as a - * list\, such as <code>"direct_io=[data]"</code>. Configuring \c direct_io - * requires care\, see @ref tuning_system_buffer_cache_direct_io for important - * warnings. Including \c "data" will cause WiredTiger data files to use direct - * I/O\, including \c "log" will cause WiredTiger log files to use direct I/O\, - * and including \c "checkpoint" will cause WiredTiger data files opened at a - * checkpoint (i.e: read-only) to use direct I/O. \c direct_io should be - * combined with \c write_through to get the equivalent of \c O_DIRECT on - * Windows., a list\, with values chosen from the following options: \c - * "checkpoint"\, \c "data"\, \c "log"; default empty.} - * @config{encryption = (, configure an encryptor for system wide metadata and - * logs. If a system wide encryptor is set\, it is also used for encrypting - * data files and tables\, unless encryption configuration is explicitly set for - * them when they are created with WT_SESSION::create., a set of related - * configuration options defined below.} - * @config{ keyid, - * An identifier that identifies a unique instance of the encryptor. It is - * stored in clear text\, and thus is available when the wiredtiger database is - * reopened. On the first use of a (name\, keyid) combination\, the - * WT_ENCRYPTOR::customize function is called with the keyid as an argument., a + * @config{direct_io, Use \c O_DIRECT on POSIX systems\, and \c FILE_FLAG_NO_BUFFERING on Windows to + * access files. Options are given as a list\, such as <code>"direct_io=[data]"</code>. Configuring + * \c direct_io requires care\, see @ref tuning_system_buffer_cache_direct_io for important + * warnings. Including \c "data" will cause WiredTiger data files to use direct I/O\, including \c + * "log" will cause WiredTiger log files to use direct I/O\, and including \c "checkpoint" will + * cause WiredTiger data files opened at a checkpoint (i.e: read-only) to use direct I/O. \c + * direct_io should be combined with \c write_through to get the equivalent of \c O_DIRECT on + * Windows., a list\, with values chosen from the following options: \c "checkpoint"\, \c "data"\, + * \c "log"; default empty.} + * @config{encryption = (, configure an encryptor for system wide metadata and logs. If a system + * wide encryptor is set\, it is also used for encrypting data files and tables\, unless encryption + * configuration is explicitly set for them when they are created with WT_SESSION::create., a set of + * related configuration options defined below.} + * @config{ keyid, An + * identifier that identifies a unique instance of the encryptor. It is stored in clear text\, and + * thus is available when the wiredtiger database is reopened. On the first use of a (name\, keyid) + * combination\, the WT_ENCRYPTOR::customize function is called with the keyid as an argument., a * string; default empty.} - * @config{ name, Permitted - * values are \c "none" or custom encryption engine name created with - * WT_CONNECTION::add_encryptor. See @ref encryption for more information., a - * string; default \c none.} - * @config{ secretkey, A string - * that is passed to the WT_ENCRYPTOR::customize function. It is never stored - * in clear text\, so must be given to any subsequent ::wiredtiger_open calls to - * reopen the database. It must also be provided to any "wt" commands used with - * this database., a string; default empty.} + * @config{ name, Permitted values are \c "none" or + * custom encryption engine name created with WT_CONNECTION::add_encryptor. See @ref encryption for + * more information., a string; default \c none.} + * @config{ secretkey, A + * string that is passed to the WT_ENCRYPTOR::customize function. It is never stored in clear + * text\, so must be given to any subsequent ::wiredtiger_open calls to reopen the database. It + * must also be provided to any "wt" commands used with this database., a string; default empty.} * @config{ ),,} - * @config{error_prefix, prefix string for error messages., a string; default - * empty.} - * @config{eviction = (, eviction configuration options., a set of related - * configuration options defined below.} + * @config{error_prefix, prefix string for error messages., a string; default empty.} + * @config{eviction = (, eviction configuration options., a set of related configuration options + * defined below.} + * @config{ 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 \c 8.} * @config{ - * 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 \c 8.} - * @config{ 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 \c 1.} + * 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 \c 1.} * @config{ ),,} - * @config{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 \c cache_size. Ignored if set to zero or \c in_memory is \c true., an - * integer between 0 and 10TB; default \c 1.} - * @config{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 \c cache_size., - * an integer between 1 and 10TB; default \c 5.} - * @config{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 \c cache_size. This setting only alters behavior if it is lower than + * @config{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 \c cache_size. Ignored if set to zero or \c in_memory is \c true., an integer + * between 0 and 10TB; default \c 1.} + * @config{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 \c cache_size., an integer between 1 and 10TB; default \c 5.} + * @config{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 \c cache_size. This setting only alters behavior if it is lower than * eviction_trigger., an integer between 1 and 10TB; default \c 20.} - * @config{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 \c cache_size., an integer - * between 10 and 10TB; default \c 80.} - * @config{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 \c - * cache_size., an integer between 10 and 10TB; default \c 95.} - * @config{exclusive, fail if the database already exists\, generally used with - * the \c create option., a boolean flag; default \c false.} - * @config{extensions, list of shared library extensions to load (using dlopen). - * Any values specified to a library extension are passed to - * WT_CONNECTION::load_extension as the \c config parameter (for example\, - * <code>extensions=(/path/ext.so={entry=my_entry})</code>)., a list of strings; - * default empty.} - * @config{file_extend, file extension configuration. If set\, extend files of - * the set type in allocations of the set size\, instead of a block at a time as - * each new block is written. For example\, - * <code>file_extend=(data=16MB)</code>. If set to 0\, disable the file - * extension for the set type. For log files\, the allowed range is between - * 100KB and 2GB; values larger than the configured maximum log size and the - * default config would extend log files in allocations of the maximum log file - * size., a list\, with values chosen from the following options: \c "data"\, \c + * @config{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 \c cache_size., + * an integer between 10 and 10TB; default \c 80.} + * @config{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 \c cache_size., an integer between 10 and 10TB; default \c 95.} + * @config{exclusive, fail if the database already exists\, generally used with the \c create + * option., a boolean flag; default \c false.} + * @config{extensions, list of shared library extensions to load (using dlopen). Any values + * specified to a library extension are passed to WT_CONNECTION::load_extension as the \c config + * parameter (for example\, <code>extensions=(/path/ext.so={entry=my_entry})</code>)., a list of + * strings; default empty.} + * @config{file_extend, file extension configuration. If set\, extend files of the set type in + * allocations of the set size\, instead of a block at a time as each new block is written. For + * example\, <code>file_extend=(data=16MB)</code>. If set to 0\, disable the file extension for the + * set type. For log files\, the allowed range is between 100KB and 2GB; values larger than the + * configured maximum log size and the default config would extend log files in allocations of the + * maximum log file size., a list\, with values chosen from the following options: \c "data"\, \c * "log"; default empty.} - * @config{file_manager = (, control how file handles are managed., a set of - * related configuration options defined below.} - * @config{ 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 \c 250.} - * @config{ - * 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 \c 30.} - * @config{ 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 \c 10.} - * @config{ ),,} - * @config{in_memory, keep data in-memory only. See @ref in_memory for more - * information., a boolean flag; default \c false.} - * @config{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 below.} - * @config{ 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 \c 0.} + * @config{file_manager = (, control how file handles are managed., a set of related configuration + * options defined below.} + * @config{ 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 \c 250.} + * @config{ 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 \c 30.} + * @config{ 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 \c 10.} * @config{ ),,} - * @config{log = (, enable logging. Enabling logging uses three sessions from - * the configured session_max., a set of related configuration options defined - * below.} - * @config{ archive, automatically archive - * unneeded log files., a boolean flag; default \c true.} - * @config{ compressor, configure a compressor for log - * records. Permitted values are \c "none" or custom compression engine name - * created with WT_CONNECTION::add_compressor. If WiredTiger has builtin - * support for \c "lz4"\, \c "snappy"\, \c "zlib" or \c "zstd" compression\, - * these names are also available. See @ref compression for more information., - * a string; default \c none.} - * @config{ enabled, enable - * logging subsystem., a boolean flag; default \c false.} - * @config{ file_max, the maximum size of log files., an - * integer between 100KB and 2GB; default \c 100MB.} - * @config{ os_cache_dirty_pct, maximum dirty system - * buffer cache usage\, as a percentage of the log's \c 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 \c + * @config{in_memory, keep data in-memory only. See @ref in_memory for more information., a boolean + * flag; default \c false.} + * @config{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 below.} + * @config{ 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 \c * 0.} - * @config{ path, the name of a directory into which - * log 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 @ref - * absolute_path for more information)., a string; default \c ".".} - * @config{ prealloc, pre-allocate log files., a boolean - * flag; default \c true.} - * @config{ recover, run recovery - * or error if recovery needs to run after an unclean shutdown., a string\, - * chosen from the following options: \c "error"\, \c "on"; default \c on.} - * @config{ zero_fill, manually write zeroes into log - * files., a boolean flag; default \c false.} * @config{ ),,} - * @config{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 + * @config{log = (, enable logging. Enabling logging uses three sessions from the configured * session_max., a set of related configuration options defined below.} - * @config{ merge, merge LSM chunks where possible., a - * boolean flag; default \c true.} - * @config{ - * 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 \c 4.} - * @config{ ),,} - * @config{mmap, Use memory mapping to access files when possible., a boolean + * @config{ archive, automatically archive unneeded log files., a boolean * flag; default \c true.} - * @config{multiprocess, permit sharing between processes (will automatically - * start an RPC server for primary processes and use RPC for secondary - * processes). <b>Not yet supported in WiredTiger</b>., a boolean flag; default - * \c false.} - * @config{operation_tracking = (, enable tracking of performance-critical - * functions. See @ref operation_tracking for more information., a set of - * related configuration options defined below.} - * @config{ enabled, enable operation tracking + * @config{ compressor, configure a compressor for + * log records. Permitted values are \c "none" or custom compression engine name created with + * WT_CONNECTION::add_compressor. If WiredTiger has builtin support for \c "lz4"\, \c "snappy"\, \c + * "zlib" or \c "zstd" compression\, these names are also available. See @ref compression for more + * information., a string; default \c none.} + * @config{ enabled, enable logging * subsystem., a boolean flag; default \c false.} + * @config{ file_max, the + * maximum size of log files., an integer between 100KB and 2GB; default \c 100MB.} + * @config{ os_cache_dirty_pct, maximum dirty system buffer cache usage\, as + * a percentage of the log's \c 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 \c 0.} + * @config{ path, the name of a directory into which log 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 @ref absolute_path for more information)., a string; default \c ".".} + * @config{ prealloc, pre-allocate log files., a boolean flag; default \c + * true.} + * @config{ recover, run recovery or error if recovery needs to run + * after an unclean shutdown., a string\, chosen from the following options: \c "error"\, \c "on"; + * default \c on.} + * @config{ zero_fill, manually write zeroes into log files., + * a boolean flag; default \c false.} + * @config{ ),,} + * @config{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 below.} + * @config{ merge, merge LSM chunks where possible., a boolean flag; default + * \c true.} + * @config{ 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 \c 4.} + * @config{ ),,} + * @config{mmap, Use memory mapping to access files when possible., a boolean flag; default \c + * true.} + * @config{multiprocess, permit sharing between processes (will automatically start an RPC server + * for primary processes and use RPC for secondary processes). <b>Not yet supported in + * WiredTiger</b>., a boolean flag; default \c false.} + * @config{operation_tracking = (, enable tracking of performance-critical functions. See @ref + * operation_tracking for more information., a set of related configuration options defined below.} + * @config{ enabled, enable operation tracking subsystem., a boolean flag; + * default \c false.} * @config{ 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 @ref absolute_path for more information)., a string; default \c ".".} + * 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 @ref absolute_path for more + * information)., a string; default \c ".".} * @config{ ),,} - * @config{readonly, open connection in read-only mode. The database must - * exist. All methods that may modify a database are disabled. See @ref - * readonly for more information., a boolean flag; default \c false.} - * @config{salvage, open connection and salvage any WiredTiger-owned database - * and log files that it detects as corrupted. This API should only be used - * after getting an error return of WT_TRY_SALVAGE. Salvage rebuilds files in - * place\, overwriting existing files. We recommend making a backup copy of all - * files with the WiredTiger prefix prior to passing this flag., a boolean flag; + * @config{readonly, open connection in read-only mode. The database must exist. All methods that + * may modify a database are disabled. See @ref readonly for more information., a boolean flag; * default \c false.} - * @config{session_max, maximum expected number of sessions (including server - * threads)., an integer greater than or equal to 1; default \c 100.} - * @config{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 below.} - * @config{ chunk, the granularity that a shared cache is - * redistributed., an integer between 1MB and 10TB; default \c 10MB.} - * @config{ name, the name of a cache that is shared - * between databases or \c "none" when no shared cache is configured., a string; - * default \c none.} - * @config{ quota, maximum size of - * cache this database can be allocated from the shared cache. Defaults to the - * entire shared cache size., an integer; default \c 0.} + * @config{salvage, open connection and salvage any WiredTiger-owned database and log files that it + * detects as corrupted. This API should only be used after getting an error return of + * WT_TRY_SALVAGE. Salvage rebuilds files in place\, overwriting existing files. We recommend + * making a backup copy of all files with the WiredTiger prefix prior to passing this flag., a + * boolean flag; default \c false.} + * @config{session_max, maximum expected number of sessions (including server threads)., an integer + * greater than or equal to 1; default \c 100.} + * @config{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 below.} + * @config{ chunk, the granularity that a shared cache is redistributed., an + * integer between 1MB and 10TB; default \c 10MB.} + * @config{ name, the name of + * a cache that is shared between databases or \c "none" when no shared cache is configured., a + * string; default \c none.} + * @config{ quota, maximum size of cache this + * database can be allocated from the shared cache. Defaults to the entire shared cache size., an + * integer; default \c 0.} * @config{ 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 \c 0.} - * @config{ size, maximum memory to allocate for the - * shared cache. Setting this will update the value if one is already set., an + * guaranteed to have available from the shared cache. This setting is per database. Defaults to + * the chunk size., an integer; default \c 0.} + * @config{ 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 \c 500MB.} * @config{ ),,} - * @config{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 \c - * statistics_log configuration. See @ref statistics for more information., a - * list\, with values chosen from the following options: \c "all"\, \c - * "cache_walk"\, \c "fast"\, \c "none"\, \c "clear"\, \c "tree_walk"; default - * \c none.} - * @config{statistics_log = (, log any statistics the database is configured to - * maintain\, to a file. See @ref statistics for more information. Enabling - * the statistics log server uses a session from the configured session_max., a - * set of related configuration options defined below.} - * @config{ json, encode statistics in JSON format., a - * boolean flag; default \c false.} - * @config{ on_close, - * log statistics on database close., a boolean flag; default \c false.} + * @config{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 \c statistics_log + * configuration. See @ref statistics for more information., a list\, with values chosen from the + * following options: \c "all"\, \c "cache_walk"\, \c "fast"\, \c "none"\, \c "clear"\, \c + * "tree_walk"; default \c none.} + * @config{statistics_log = (, log any statistics the database is configured to maintain\, to a + * file. See @ref statistics for more information. Enabling the statistics log server uses a + * session from the configured session_max., a set of related configuration options defined below.} + * @config{ json, encode statistics in JSON format., a boolean flag; default + * \c false.} + * @config{ on_close, log statistics on database close., a boolean + * flag; default \c false.} * @config{ path, the name of a directory into which - * statistics 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 @ref absolute_path for more information)., a string; default \c ".".} - * @config{ sources, if non-empty\, include statistics - * for the list of data source URIs\, if they are open at the time of the - * statistics logging. The list may include URIs matching a single data source - * ("table:mytable")\, or a URI matching all data sources of a particular type - * ("table:")., a list of strings; default empty.} - * @config{ timestamp, a timestamp prepended to each log - * record\, may contain strftime conversion specifications\, when \c json is - * configured\, defaults to \c "%FT%Y.000Z"., a string; default \c "%b %d - * %H:%M:%S".} - * @config{ 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 \c 0.} - * @config{ - * ),,} - * @config{transaction_sync = (, how to sync log records when the transaction - * commits., a set of related configuration options defined below.} - * @config{ enabled, whether to sync the log on every - * commit by default\, can be overridden by the \c sync setting to + * statistics 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 @ref absolute_path for more information)., + * a string; default \c ".".} + * @config{ sources, if non-empty\, include + * statistics for the list of data source URIs\, if they are open at the time of the statistics + * logging. The list may include URIs matching a single data source ("table:mytable")\, or a URI + * matching all data sources of a particular type ("table:")., a list of strings; default empty.} + * @config{ timestamp, a timestamp prepended to each log record\, may contain + * strftime conversion specifications\, when \c json is configured\, defaults to \c "%FT%Y.000Z"., a + * string; default \c "%b %d %H:%M:%S".} + * @config{ 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 \c 0.} + * @config{ ),,} + * @config{transaction_sync = (, how to sync log records when the transaction commits., a set of + * related configuration options defined below.} + * @config{ enabled, whether to + * sync the log on every commit by default\, can be overridden by the \c sync setting to * WT_SESSION::commit_transaction., a boolean flag; default \c false.} - * @config{ method, the method used to ensure log records - * are stable on disk\, see @ref tune_durability for more information., a - * string\, chosen from the following options: \c "dsync"\, \c "fsync"\, \c - * "none"; default \c fsync.} + * @config{ method, the method used to ensure log records are stable on + * disk\, see @ref tune_durability for more information., a string\, chosen from the following + * options: \c "dsync"\, \c "fsync"\, \c "none"; default \c fsync.} * @config{ ),,} - * @config{use_environment, use the \c WIREDTIGER_CONFIG and \c WIREDTIGER_HOME - * environment variables if the process is not running with special privileges. - * See @ref home for more information., a boolean flag; default \c true.} - * @config{use_environment_priv, use the \c WIREDTIGER_CONFIG and \c - * WIREDTIGER_HOME environment variables even if the process is running with - * special privileges. See @ref home for more information., a boolean flag; - * default \c false.} - * @config{verbose, enable messages for various events. Options are given as a - * list\, such as <code>"verbose=[evictserver\,read]"</code>., a list\, with - * values chosen from the following options: \c "api"\, \c "block"\, \c - * "checkpoint"\, \c "checkpoint_progress"\, \c "compact"\, \c - * "compact_progress"\, \c "error_returns"\, \c "evict"\, \c "evict_stuck"\, \c - * "evictserver"\, \c "fileops"\, \c "handleops"\, \c "log"\, \c "lookaside"\, - * \c "lookaside_activity"\, \c "lsm"\, \c "lsm_manager"\, \c "metadata"\, \c - * "mutex"\, \c "overflow"\, \c "read"\, \c "rebalance"\, \c "reconcile"\, \c - * "recovery"\, \c "recovery_progress"\, \c "salvage"\, \c "shared_cache"\, \c - * "split"\, \c "temporary"\, \c "thread_group"\, \c "timestamp"\, \c - * "transaction"\, \c "verify"\, \c "version"\, \c "write"; default empty.} - * @config{write_through, Use \c FILE_FLAG_WRITE_THROUGH on Windows to write to - * files. Ignored on non-Windows systems. Options are given as a list\, such - * as <code>"write_through=[data]"</code>. Configuring \c write_through requires - * care\, see @ref tuning_system_buffer_cache_direct_io for important warnings. - * Including \c "data" will cause WiredTiger data files to write through cache\, - * including \c "log" will cause WiredTiger log files to write through cache. - * \c write_through should be combined with \c direct_io to get the equivalent - * of POSIX \c O_DIRECT on Windows., a list\, with values chosen from the - * following options: \c "data"\, \c "log"; default empty.} + * @config{use_environment, use the \c WIREDTIGER_CONFIG and \c WIREDTIGER_HOME environment + * variables if the process is not running with special privileges. See @ref home for more + * information., a boolean flag; default \c true.} + * @config{use_environment_priv, use the \c WIREDTIGER_CONFIG and \c WIREDTIGER_HOME environment + * variables even if the process is running with special privileges. See @ref home for more + * information., a boolean flag; default \c false.} + * @config{verbose, enable messages for various events. Options are given as a list\, such as + * <code>"verbose=[evictserver\,read]"</code>., a list\, with values chosen from the following + * options: \c "api"\, \c "block"\, \c "checkpoint"\, \c "checkpoint_progress"\, \c "compact"\, \c + * "compact_progress"\, \c "error_returns"\, \c "evict"\, \c "evict_stuck"\, \c "evictserver"\, \c + * "fileops"\, \c "handleops"\, \c "log"\, \c "lookaside"\, \c "lookaside_activity"\, \c "lsm"\, \c + * "lsm_manager"\, \c "metadata"\, \c "mutex"\, \c "overflow"\, \c "read"\, \c "rebalance"\, \c + * "reconcile"\, \c "recovery"\, \c "recovery_progress"\, \c "salvage"\, \c "shared_cache"\, \c + * "split"\, \c "temporary"\, \c "thread_group"\, \c "timestamp"\, \c "transaction"\, \c "verify"\, + * \c "version"\, \c "write"; default empty.} + * @config{write_through, Use \c FILE_FLAG_WRITE_THROUGH on Windows to write to files. Ignored on + * non-Windows systems. Options are given as a list\, such as <code>"write_through=[data]"</code>. + * Configuring \c write_through requires care\, see @ref tuning_system_buffer_cache_direct_io for + * important warnings. Including \c "data" will cause WiredTiger data files to write through + * cache\, including \c "log" will cause WiredTiger log files to write through cache. \c + * write_through should be combined with \c direct_io to get the equivalent of POSIX \c O_DIRECT on + * Windows., a list\, with values chosen from the following options: \c "data"\, \c "log"; default + * empty.} * @configend * Additionally, if files named \c WiredTiger.config or \c WiredTiger.basecfg * appear in the WiredTiger home directory, they are read for configuration |