summaryrefslogtreecommitdiff
path: root/src/include/wiredtiger.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/wiredtiger.in')
-rw-r--r--src/include/wiredtiger.in895
1 files changed, 705 insertions, 190 deletions
diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in
index 279858a808e..007df44f257 100644
--- a/src/include/wiredtiger.in
+++ b/src/include/wiredtiger.in
@@ -71,6 +71,8 @@ struct __wt_encryptor; typedef struct __wt_encryptor WT_ENCRYPTOR;
struct __wt_event_handler; typedef struct __wt_event_handler WT_EVENT_HANDLER;
struct __wt_extension_api; typedef struct __wt_extension_api WT_EXTENSION_API;
struct __wt_extractor; typedef struct __wt_extractor WT_EXTRACTOR;
+struct __wt_file_handle; typedef struct __wt_file_handle WT_FILE_HANDLE;
+struct __wt_file_system; typedef struct __wt_file_system WT_FILE_SYSTEM;
struct __wt_item; typedef struct __wt_item WT_ITEM;
struct __wt_session; typedef struct __wt_session WT_SESSION;
@@ -421,6 +423,9 @@ struct __wt_cursor {
* @errors
* In particular, if \c overwrite is not configured and a record with
* the specified key already exists, ::WT_DUPLICATE_KEY is returned.
+ * Also, if \c in_memory is configured for the database and the insert
+ * requires more than the configured cache size to complete,
+ * ::WT_CACHE_FULL is returned.
*/
int __F(insert)(WT_CURSOR *cursor);
@@ -451,6 +456,9 @@ struct __wt_cursor {
* @errors
* In particular, if \c overwrite is not configured and no record with
* the specified key exists, ::WT_NOTFOUND is returned.
+ * Also, if \c in_memory is configured for the database and the insert
+ * requires more than the configured cache size to complete,
+ * ::WT_CACHE_FULL is returned.
*/
int __F(update)(WT_CURSOR *cursor);
@@ -1241,18 +1249,21 @@ struct __wt_session {
* @param join_cursor a cursor that was opened using a
* \c "join:" URI. It may not have been used for any operations
* other than other join calls.
- * @param ref_cursor either an index cursor having the same base table
- * as the join_cursor, or a table cursor open on the same base table.
- * The ref_cursor must be positioned.
+ * @param ref_cursor an index cursor having the same base table
+ * as the join_cursor, or a table cursor open on the same base table,
+ * or another join cursor. Unless the ref_cursor is another join
+ * cursor, it must be positioned.
*
* The ref_cursor limits the results seen by iterating the
* join_cursor to table items referred to by the key in this
* index. The set of keys referred to is modified by the compare
* config option.
*
- * Multiple join calls builds up a set of ref_cursors, and the
- * results seen by iteration are the intersection of the cursor
- * ranges participating in the join.
+ * Multiple join calls builds up a set of ref_cursors, and
+ * by default, the results seen by iteration are the intersection
+ * of the cursor ranges participating in the join. When configured
+ * with \c "operation=or", the results seen are the union of
+ * the participating cursor ranges.
*
* After the join call completes, the ref_cursor cursor may not be
* used for any purpose other than get_key and get_value. Any other
@@ -1275,6 +1286,13 @@ struct __wt_session {
* 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
@@ -2018,6 +2036,10 @@ struct __wt_connection {
* @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
@@ -2129,6 +2151,23 @@ struct __wt_connection {
WT_EXTRACTOR *extractor, const char *config);
/*!
+ * Configure a custom file system.
+ *
+ * This method can only be called from an early loaded extension
+ * module. The application must first implement the WT_FILE_SYSTEM
+ * interface and then register the implementation with WiredTiger:
+ *
+ * @snippet ex_file_system.c WT_FILE_SYSTEM register
+ *
+ * @param connection the connection handle
+ * @param fs the populated file system structure
+ * @configempty{WT_CONNECTION.set_file_system, see dist/api_data.py}
+ * @errors
+ */
+ int __F(set_file_system)(
+ WT_CONNECTION *connection, WT_FILE_SYSTEM *fs, const char *config);
+
+ /*!
* Return a reference to the WiredTiger extension functions.
*
* @snippet ex_data_source.c WT_EXTENSION_API declaration
@@ -2289,6 +2328,8 @@ struct __wt_connection {
* @config{ ),,}
* @config{hazard_max, maximum number of simultaneous hazard pointers per
* session handle., an integer greater than or equal to 15; default \c 1000.}
+ * @config{in_memory, keep data in-memory only. See @ref in_memory for more
+ * information., a boolean flag; default \c false.}
* @config{log = (, enable logging. Enabling logging uses three sessions from
* the configured session_max., a set of related configuration options defined
* below.}
@@ -3003,15 +3044,15 @@ const char *wiredtiger_version(int *majorp, int *minorp, int *patchp);
* if recovery is required to use the database.
*/
#define WT_RUN_RECOVERY -31806
-/*! @cond internal */
/*!
* Operation would overflow cache.
- * This error is generated when wiredtiger_open is configured to run in-memory,
- * and an insert or update operation requires more than the configured cache
- * size to complete.
+ * This error is only generated when wiredtiger_open is configured to run in-
+ * memory, and an insert or update operation requires more than the configured
+ * cache size to complete. The operation may be retried; if a transaction is in
+ * progress, it should be rolled back and the operation retried in a new
+ * transaction.
*/
#define WT_CACHE_FULL -31807
-/*! @endcond */
/*! @cond internal */
/*! Permission denied (internal). */
#define WT_PERM_DENIED -31808
@@ -3038,7 +3079,7 @@ const char *wiredtiger_version(int *majorp, int *minorp, int *patchp);
/*******************************************
* Forward structure declarations for the extension API
*******************************************/
-struct __wt_config_arg; typedef struct __wt_config_arg WT_CONFIG_ARG;
+struct __wt_config_arg; typedef struct __wt_config_arg WT_CONFIG_ARG;
/*!
* The interface implemented by applications to provide custom ordering of
@@ -3569,7 +3610,7 @@ struct __wt_encryptor {
* number of bytes needed.
*
* @param[out] expansion_constantp the additional number of bytes needed
- * when encrypting.
+ * when encrypting.
* @returns zero for success, non-zero to indicate an error.
*
* @snippet nop_encrypt.c WT_ENCRYPTOR sizing
@@ -3588,8 +3629,7 @@ struct __wt_encryptor {
* is used instead of this one for any callbacks.
*
* @param[in] encrypt_config the "encryption" portion of the
- * configuration from the wiredtiger_open or
- * WT_SESSION::create call
+ * configuration from the wiredtiger_open or WT_SESSION::create call
* @param[out] customp the new modified encryptor, or NULL.
* @returns zero for success, non-zero to indicate an error.
*/
@@ -3664,6 +3704,466 @@ struct __wt_extractor {
int (*terminate)(WT_EXTRACTOR *extractor, WT_SESSION *session);
};
+#if !defined(SWIG)
+/*! WT_FILE_SYSTEM::open_file file types */
+typedef enum {
+ WT_OPEN_FILE_TYPE_CHECKPOINT, /*!< open a data file checkpoint */
+ WT_OPEN_FILE_TYPE_DATA, /*!< open a data file */
+ WT_OPEN_FILE_TYPE_DIRECTORY, /*!< open a directory */
+ WT_OPEN_FILE_TYPE_LOG, /*!< open a log file */
+ WT_OPEN_FILE_TYPE_REGULAR /*!< open a regular file */
+} WT_OPEN_FILE_TYPE;
+
+/*! WT_FILE_SYSTEM::open_file flags: create if does not exist */
+#define WT_OPEN_CREATE 0x001
+/*! WT_FILE_SYSTEM::open_file flags: direct I/O requested */
+#define WT_OPEN_DIRECTIO 0x002
+/*! WT_FILE_SYSTEM::open_file flags: error if exclusive use not available */
+#define WT_OPEN_EXCLUSIVE 0x004
+#ifndef DOXYGEN
+#define WT_OPEN_FIXED 0x008 /* Path not home relative (internal) */
+#endif
+/*! WT_FILE_SYSTEM::open_file flags: open is read-only */
+#define WT_OPEN_READONLY 0x010
+
+/*!
+ * The interface implemented by applications to provide a custom file system
+ * implementation.
+ *
+ * <b>Thread safety:</b> WiredTiger may invoke methods on the WT_FILE_SYSTEM
+ * interface from multiple threads concurrently. It is the responsibility of
+ * the implementation to protect any shared data.
+ *
+ * Applications register implementations with WiredTiger by calling
+ * WT_CONNECTION::add_file_system. See @ref custom_file_systems for more
+ * information.
+ *
+ * @snippet ex_file_system.c WT_FILE_SYSTEM register
+ */
+struct __wt_file_system {
+ /*!
+ * Return a list of file names for the named directory.
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param directory the name of the directory
+ * @param prefix if not NULL, only files with names matching the prefix
+ * are returned
+ * @param[out] dirlist the method returns an allocated array of
+ * individually allocated strings, one for each entry in the
+ * directory.
+ * @param[out] countp the method the number of entries returned
+ */
+ int (*directory_list)(WT_FILE_SYSTEM *file_system, WT_SESSION *session,
+ const char *directory, const char *prefix, char ***dirlist,
+ uint32_t *countp);
+
+ /*!
+ * Free memory allocated by WT_FILE_SYSTEM::directory_list.
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param dirlist array returned by WT_FILE_SYSTEM::directory_list
+ * @param count count returned by WT_FILE_SYSTEM::directory_list
+ */
+ int (*directory_list_free)(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *session, char **dirlist, uint32_t count);
+
+ /*!
+ * Flush the named directory.
+ *
+ * This method is not required for readonly file systems or file systems
+ * where it is not necessary to flush a file's directory to ensure the
+ * durability of file system operations, and should be set to NULL when
+ * not required by the file system.
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param directory the name of the directory
+ */
+ int (*directory_sync)(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *session, const char *directory);
+
+ /*!
+ * Return if the named file system object exists.
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param name the name of the file
+ * @param[out] existp If the named file system object exists
+ */
+ int (*exist)(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *session, const char *name, bool *existp);
+
+ /*!
+ * Open a handle for a named file system object
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param name the name of the file system object
+ * @param file_type the type of the file
+ * The file type is provided to allow optimization for different file
+ * access patterns.
+ * @param flags flags indicating how to open the file, one or more of
+ * ::WT_OPEN_CREATE, ::WT_OPEN_DIRECTIO, ::WT_OPEN_EXCLUSIVE or
+ * ::WT_OPEN_READONLY.
+ * @param[out] file_handlep the handle to the newly opened file. File
+ * system implementations must allocate memory for the handle and
+ * the WT_FILE_HANDLE::name field, and fill in the WT_FILE_HANDLE::
+ * fields. Applications wanting to associate private information
+ * with the WT_FILE_HANDLE:: structure should declare and allocate
+ * their own structure as a superset of a WT_FILE_HANDLE:: structure.
+ */
+ int (*open_file)(WT_FILE_SYSTEM *file_system, WT_SESSION *session,
+ const char *name, WT_OPEN_FILE_TYPE file_type, uint32_t flags,
+ WT_FILE_HANDLE **file_handlep);
+
+ /*!
+ * Remove a named file system object
+ *
+ * This method is not required for readonly file systems and should be
+ * set to NULL when not required by the file system.
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param name the name of the file system object
+ */
+ int (*remove)(
+ WT_FILE_SYSTEM *file_system, WT_SESSION *session, const char *name);
+
+ /*!
+ * Rename a named file system object
+ *
+ * This method is not required for readonly file systems and should be
+ * set to NULL when not required by the file system.
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param from the original name of the object
+ * @param to the new name for the object
+ */
+ int (*rename)(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *session, const char *from, const char *to);
+
+ /*!
+ * Return the size of a named file system object
+ *
+ * @errors
+ *
+ * @param file_system the WT_FILE_SYSTEM
+ * @param session the current WiredTiger session
+ * @param name the name of the file system object
+ * @param[out] sizep the size of the file system entry
+ */
+ int (*size)(WT_FILE_SYSTEM *file_system,
+ WT_SESSION *session, const char *name, wt_off_t *sizep);
+
+ /*!
+ * A callback performed when the file system is closed and will no
+ * longer be accessed by the WiredTiger database.
+ *
+ * This method is not required and should be set to NULL when not
+ * required by the file system.
+ *
+ * The WT_FILE_SYSTEM::terminate callback is intended to allow cleanup,
+ * the handle will not be subsequently accessed by WiredTiger.
+ */
+ int (*terminate)(WT_FILE_SYSTEM *file_system, WT_SESSION *session);
+};
+
+/*! WT_FILE_HANDLE::fadvise flags: no longer need */
+#define WT_FILE_HANDLE_DONTNEED 1
+/*! WT_FILE_HANDLE::fadvise flags: will need */
+#define WT_FILE_HANDLE_WILLNEED 2
+
+/*!
+ * A file handle implementation returned by WT_FILE_SYSTEM::open_file.
+ *
+ * <b>Thread safety:</b> Unless explicitly stated otherwise, WiredTiger may
+ * invoke methods on the WT_FILE_HANDLE interface from multiple threads
+ * concurrently. It is the responsibility of the implementation to protect
+ * any shared data.
+ *
+ * See @ref custom_file_systems for more information.
+ */
+struct __wt_file_handle {
+ /*!
+ * The enclosing file system, set by WT_FILE_SYSTEM::open_file.
+ */
+ WT_FILE_SYSTEM *file_system;
+
+ /*!
+ * The name of the file, set by WT_FILE_SYSTEM::open_file.
+ */
+ char *name;
+
+ /*!
+ * Close a file handle, the handle will not be further accessed by
+ * WiredTiger.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ */
+ int (*close)(WT_FILE_HANDLE *file_handle, WT_SESSION *session);
+
+ /*!
+ * Indicate expected future use of file ranges, based on the POSIX
+ * 1003.1 standard fadvise.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param offset the file offset
+ * @param len the size of the advisory
+ * @param advice one of ::WT_FILE_HANDLE_WILLNEED or
+ * ::WT_FILE_HANDLE_DONTNEED.
+ */
+ int (*fadvise)(WT_FILE_HANDLE *file_handle,
+ WT_SESSION *session, wt_off_t offset, wt_off_t len, int advice);
+
+ /*!
+ * Ensure disk space is allocated for the file, based on the POSIX
+ * 1003.1 standard fallocate.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * This method is not called by multiple threads concurrently (on the
+ * same file handle). If the file handle's fallocate method supports
+ * concurrent calls, set the WT_FILE_HANDLE::fallocate_nolock method
+ * instead.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param offset the file offset
+ * @param len the size of the advisory
+ */
+ int (*fallocate)(WT_FILE_HANDLE *file_handle,
+ WT_SESSION *session, wt_off_t, wt_off_t);
+
+ /*!
+ * Ensure disk space is allocated for the file, based on the POSIX
+ * 1003.1 standard fallocate.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * This method may be called by multiple threads concurrently (on the
+ * same file handle). If the file handle's fallocate method does not
+ * support concurrent calls, set the WT_FILE_HANDLE::fallocate method
+ * instead.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param offset the file offset
+ * @param len the size of the advisory
+ */
+ int (*fallocate_nolock)(WT_FILE_HANDLE *file_handle,
+ WT_SESSION *session, wt_off_t, wt_off_t);
+
+ /*!
+ * Lock/unlock a file from the perspective of other processes running
+ * in the system.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param lock whether to lock or unlock
+ */
+ int (*lock)(
+ WT_FILE_HANDLE *file_handle, WT_SESSION *session, bool lock);
+
+ /*!
+ * Map a file into memory, based on the POSIX 1003.1 standard mmap.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param[out] mapped_regionp a reference to a memory location into
+ * which should be stored a pointer to the start of the mapped region
+ * @param[out] lengthp a reference to a memory location into which
+ * should be stored the length of the region
+ * @param[out] mapped_cookiep a reference to a memory location into
+ * which can be optionally stored a pointer to an opaque cookie
+ * which is subsequently passed to WT_FILE_HANDLE::unmap.
+ */
+ int (*map)(WT_FILE_HANDLE *file_handle, WT_SESSION *session,
+ void *mapped_regionp, size_t *lengthp, void *mapped_cookiep);
+
+ /*!
+ * Unmap part of a memory mapped file, based on the POSIX 1003.1
+ * standard madvise.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param map a location in the mapped region unlikely to be used in the
+ * near future
+ * @param length the length of the mapped region to discard
+ * @param mapped_cookie any cookie set by the WT_FILE_HANDLE::map method
+ */
+ int (*map_discard)(WT_FILE_HANDLE *file_handle,
+ WT_SESSION *session, void *map, size_t length, void *mapped_cookie);
+
+ /*!
+ * Preload part of a memory mapped file, based on the POSIX 1003.1
+ * standard madvise.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param map a location in the mapped region likely to be used in the
+ * near future
+ * @param length the size of the mapped region to preload
+ * @param mapped_cookie any cookie set by the WT_FILE_HANDLE::map method
+ */
+ int (*map_preload)(WT_FILE_HANDLE *file_handle, WT_SESSION *session,
+ const void *map, size_t length, void *mapped_cookie);
+
+ /*!
+ * Unmap a memory mapped file, based on the POSIX 1003.1 standard
+ * munmap.
+ *
+ * This method is only required if a valid implementation of map is
+ * provided by the file, and should be set to NULL otherwise.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param mapped_region a pointer to the start of the mapped region
+ * @param length the length of the mapped region
+ * @param mapped_cookie any cookie set by the WT_FILE_HANDLE::map method
+ */
+ int (*unmap)(WT_FILE_HANDLE *file_handle, WT_SESSION *session,
+ void *mapped_region, size_t length, void *mapped_cookie);
+
+ /*!
+ * Read from a file, based on the POSIX 1003.1 standard pread.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param offset the offset in the file to start reading from
+ * @param len the amount to read
+ * @param[out] buf buffer to hold the content read from file
+ */
+ int (*read)(WT_FILE_HANDLE *file_handle,
+ WT_SESSION *session, wt_off_t offset, size_t len, void *buf);
+
+ /*!
+ * Return the size of a file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param sizep the size of the file
+ */
+ int (*size)(
+ WT_FILE_HANDLE *file_handle, WT_SESSION *session, wt_off_t *sizep);
+
+ /*!
+ * Make outstanding file writes durable and do not return until writes
+ * are complete.
+ *
+ * This method is not required for read-only files, and should be set
+ * to NULL when not supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ */
+ int (*sync)(WT_FILE_HANDLE *file_handle, WT_SESSION *session);
+
+ /*!
+ * Schedule the outstanding file writes required for durability and
+ * return immediately.
+ *
+ * This method is not required, and should be set to NULL when not
+ * supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ */
+ int (*sync_nowait)(WT_FILE_HANDLE *file_handle, WT_SESSION *session);
+
+ /*!
+ * Lengthen or shorten a file to the specified length, based on the
+ * POSIX 1003.1 standard ftruncate.
+ *
+ * This method is not required for read-only files, and should be set
+ * to NULL when not supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param length desired file size after truncate
+ */
+ int (*truncate)(
+ WT_FILE_HANDLE *file_handle, WT_SESSION *session, wt_off_t length);
+
+ /*!
+ * Write to a file, based on the POSIX 1003.1 standard pwrite.
+ *
+ * This method is not required for read-only files, and should be set
+ * to NULL when not supported by the file.
+ *
+ * @errors
+ *
+ * @param file_handle the WT_FILE_HANDLE
+ * @param session the current WiredTiger session
+ * @param offset offset at which to start writing
+ * @param length amount of data to write
+ * @param buf content to be written to the file
+ */
+ int (*write)(WT_FILE_HANDLE *file_handle, WT_SESSION *session,
+ wt_off_t offset, size_t length, const void *buf);
+};
+#endif /* !defined(SWIG) */
+
/*!
* Entry point to an extension, called when the extension is loaded.
*
@@ -3774,273 +4274,286 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_BYTES_WRITE 1032
/*! cache: checkpoint blocked page eviction */
#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1033
+/*! cache: eviction calls to get a page */
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1034
+/*! cache: eviction calls to get a page found queue empty */
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1035
+/*! cache: eviction calls to get a page found queue empty after locking */
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1036
/*! cache: eviction currently operating in aggressive mode */
-#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1034
+#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1037
/*! cache: eviction server candidate queue empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1035
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1038
/*! cache: eviction server candidate queue not empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1036
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1039
/*! cache: eviction server evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1037
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1040
/*! cache: eviction server populating queue, but not evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING 1038
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING 1041
+/*! cache: eviction server skipped very large page */
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_TOOBIG 1042
+/*! cache: eviction server slept, because we did not make progress with
+ * eviction */
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1043
/*! cache: eviction server unable to reach eviction goal */
-#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1039
+#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1044
/*! cache: eviction worker thread evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1040
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1045
/*! cache: failed eviction of pages that exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1041
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1046
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1042
+#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1047
/*! cache: in-memory page passed criteria to be split */
-#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1043
+#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1048
/*! cache: in-memory page splits */
-#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1044
+#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1049
/*! cache: internal pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1045
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1050
/*! cache: internal pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1046
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1051
/*! cache: leaf pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1047
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1052
/*! cache: lookaside table insert calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1048
+#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1053
/*! cache: lookaside table remove calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1049
+#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1054
/*! cache: maximum bytes configured */
-#define WT_STAT_CONN_CACHE_BYTES_MAX 1050
+#define WT_STAT_CONN_CACHE_BYTES_MAX 1055
/*! cache: maximum page size at eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1051
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1056
/*! cache: modified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1052
+#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1057
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1053
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1058
/*! cache: page written requiring lookaside records */
-#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1054
+#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1059
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1055
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1060
/*! cache: pages evicted because they exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1056
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1061
/*! cache: pages evicted because they had chains of deleted items */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1057
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1062
/*! cache: pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP 1058
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1063
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1059
+#define WT_STAT_CONN_CACHE_READ 1064
/*! cache: pages read into cache requiring lookaside entries */
-#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1060
+#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1065
+/*! cache: pages requested from the cache */
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1066
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1061
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1067
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1062
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1068
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1063
+#define WT_STAT_CONN_CACHE_WRITE 1069
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1064
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1070
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1065
+#define WT_STAT_CONN_CACHE_OVERHEAD 1071
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1066
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1072
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1067
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1073
/*! cache: tracked bytes belonging to overflow pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_OVERFLOW 1068
+#define WT_STAT_CONN_CACHE_BYTES_OVERFLOW 1074
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1069
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1075
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1070
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1076
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1071
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1077
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1072
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1078
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1073
+#define WT_STAT_CONN_COND_AUTO_WAIT 1079
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1074
+#define WT_STAT_CONN_FILE_OPEN 1080
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1075
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1081
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1076
+#define WT_STAT_CONN_MEMORY_FREE 1082
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1077
+#define WT_STAT_CONN_MEMORY_GROW 1083
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1078
+#define WT_STAT_CONN_COND_WAIT 1084
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1079
+#define WT_STAT_CONN_RWLOCK_READ 1085
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1080
+#define WT_STAT_CONN_RWLOCK_WRITE 1086
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1081
+#define WT_STAT_CONN_READ_IO 1087
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1082
+#define WT_STAT_CONN_WRITE_IO 1088
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1083
+#define WT_STAT_CONN_CURSOR_CREATE 1089
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1084
+#define WT_STAT_CONN_CURSOR_INSERT 1090
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1085
+#define WT_STAT_CONN_CURSOR_NEXT 1091
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1086
+#define WT_STAT_CONN_CURSOR_PREV 1092
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1087
+#define WT_STAT_CONN_CURSOR_REMOVE 1093
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1088
+#define WT_STAT_CONN_CURSOR_RESET 1094
/*! cursor: cursor restarted searches */
-#define WT_STAT_CONN_CURSOR_RESTART 1089
+#define WT_STAT_CONN_CURSOR_RESTART 1095
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1090
+#define WT_STAT_CONN_CURSOR_SEARCH 1096
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1091
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1097
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1092
+#define WT_STAT_CONN_CURSOR_UPDATE 1098
/*! cursor: truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1093
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1099
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1094
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1100
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1095
+#define WT_STAT_CONN_DH_SWEEP_REF 1101
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1096
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1102
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1097
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1103
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1098
+#define WT_STAT_CONN_DH_SWEEP_TOD 1104
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1099
+#define WT_STAT_CONN_DH_SWEEPS 1105
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1100
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1106
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1101
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1107
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1102
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1108
/*! log: consolidated slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1103
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1109
/*! log: consolidated slot join races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1104
+#define WT_STAT_CONN_LOG_SLOT_RACES 1110
/*! log: consolidated slot join transitions */
-#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1105
+#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1111
/*! log: consolidated slot joins */
-#define WT_STAT_CONN_LOG_SLOT_JOINS 1106
+#define WT_STAT_CONN_LOG_SLOT_JOINS 1112
/*! log: consolidated slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1107
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1113
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1108
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1114
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1109
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1115
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1110
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1116
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1111
+#define WT_STAT_CONN_LOG_FLUSH 1117
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1112
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1118
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1113
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1119
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1114
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1120
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1115
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1121
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1116
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1122
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1117
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1123
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1118
+#define WT_STAT_CONN_LOG_SCANS 1124
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1119
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1125
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1120
+#define WT_STAT_CONN_LOG_WRITE_LSN 1126
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1121
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1127
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1122
+#define WT_STAT_CONN_LOG_SYNC 1128
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1123
+#define WT_STAT_CONN_LOG_SYNC_DIR 1129
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1124
+#define WT_STAT_CONN_LOG_WRITES 1130
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1125
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1131
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1126
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1132
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1127
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1133
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1128
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1134
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1129
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1135
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1130
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1136
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1131
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1137
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1132
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1138
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1133
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1139
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1134
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1140
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1135
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1141
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1136
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1142
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1137
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1143
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1138
+#define WT_STAT_CONN_REC_PAGES 1144
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1139
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1145
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1140
+#define WT_STAT_CONN_REC_PAGE_DELETE 1146
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1141
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1147
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1142
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1148
/*! session: open cursor count */
-#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1143
+#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1149
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1144
+#define WT_STAT_CONN_SESSION_OPEN 1150
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1145
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1151
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1146
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1152
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1147
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1153
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1148
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1154
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1149
+#define WT_STAT_CONN_PAGE_SLEEP 1155
/*! transaction: number of named snapshots created */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1150
+#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1156
/*! transaction: number of named snapshots dropped */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1151
+#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1157
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1152
+#define WT_STAT_CONN_TXN_BEGIN 1158
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1153
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1159
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1154
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1160
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1155
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1161
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1156
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1162
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1157
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1163
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1158
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1164
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1159
+#define WT_STAT_CONN_TXN_CHECKPOINT 1165
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1160
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1166
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1161
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1167
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1162
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1168
/*! transaction: transaction range of IDs currently pinned by named
* snapshots */
-#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1163
+#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1169
/*! transaction: transaction sync calls */
-#define WT_STAT_CONN_TXN_SYNC 1164
+#define WT_STAT_CONN_TXN_SYNC 1170
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1165
+#define WT_STAT_CONN_TXN_COMMIT 1171
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1166
+#define WT_STAT_CONN_TXN_ROLLBACK 1172
/*!
* @}
@@ -4163,91 +4676,93 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_DSRC_CACHE_READ 2055
/*! cache: pages read into cache requiring lookaside entries */
#define WT_STAT_DSRC_CACHE_READ_LOOKASIDE 2056
+/*! cache: pages requested from the cache */
+#define WT_STAT_DSRC_CACHE_PAGES_REQUESTED 2057
/*! cache: pages written from cache */
-#define WT_STAT_DSRC_CACHE_WRITE 2057
+#define WT_STAT_DSRC_CACHE_WRITE 2058
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_DSRC_CACHE_WRITE_RESTORE 2058
+#define WT_STAT_DSRC_CACHE_WRITE_RESTORE 2059
/*! cache: unmodified pages evicted */
-#define WT_STAT_DSRC_CACHE_EVICTION_CLEAN 2059
+#define WT_STAT_DSRC_CACHE_EVICTION_CLEAN 2060
/*! compression: compressed pages read */
-#define WT_STAT_DSRC_COMPRESS_READ 2060
+#define WT_STAT_DSRC_COMPRESS_READ 2061
/*! compression: compressed pages written */
-#define WT_STAT_DSRC_COMPRESS_WRITE 2061
+#define WT_STAT_DSRC_COMPRESS_WRITE 2062
/*! compression: page written failed to compress */
-#define WT_STAT_DSRC_COMPRESS_WRITE_FAIL 2062
+#define WT_STAT_DSRC_COMPRESS_WRITE_FAIL 2063
/*! compression: page written was too small to compress */
-#define WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL 2063
+#define WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL 2064
/*! compression: raw compression call failed, additional data available */
-#define WT_STAT_DSRC_COMPRESS_RAW_FAIL_TEMPORARY 2064
+#define WT_STAT_DSRC_COMPRESS_RAW_FAIL_TEMPORARY 2065
/*! compression: raw compression call failed, no additional data available */
-#define WT_STAT_DSRC_COMPRESS_RAW_FAIL 2065
+#define WT_STAT_DSRC_COMPRESS_RAW_FAIL 2066
/*! compression: raw compression call succeeded */
-#define WT_STAT_DSRC_COMPRESS_RAW_OK 2066
+#define WT_STAT_DSRC_COMPRESS_RAW_OK 2067
/*! cursor: bulk-loaded cursor-insert calls */
-#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2067
+#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2068
/*! cursor: create calls */
-#define WT_STAT_DSRC_CURSOR_CREATE 2068
+#define WT_STAT_DSRC_CURSOR_CREATE 2069
/*! cursor: cursor-insert key and value bytes inserted */
-#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2069
+#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2070
/*! cursor: cursor-remove key bytes removed */
-#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2070
+#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2071
/*! cursor: cursor-update value bytes updated */
-#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2071
+#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2072
/*! cursor: insert calls */
-#define WT_STAT_DSRC_CURSOR_INSERT 2072
+#define WT_STAT_DSRC_CURSOR_INSERT 2073
/*! cursor: next calls */
-#define WT_STAT_DSRC_CURSOR_NEXT 2073
+#define WT_STAT_DSRC_CURSOR_NEXT 2074
/*! cursor: prev calls */
-#define WT_STAT_DSRC_CURSOR_PREV 2074
+#define WT_STAT_DSRC_CURSOR_PREV 2075
/*! cursor: remove calls */
-#define WT_STAT_DSRC_CURSOR_REMOVE 2075
+#define WT_STAT_DSRC_CURSOR_REMOVE 2076
/*! cursor: reset calls */
-#define WT_STAT_DSRC_CURSOR_RESET 2076
+#define WT_STAT_DSRC_CURSOR_RESET 2077
/*! cursor: restarted searches */
-#define WT_STAT_DSRC_CURSOR_RESTART 2077
+#define WT_STAT_DSRC_CURSOR_RESTART 2078
/*! cursor: search calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH 2078
+#define WT_STAT_DSRC_CURSOR_SEARCH 2079
/*! cursor: search near calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2079
+#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2080
/*! cursor: truncate calls */
-#define WT_STAT_DSRC_CURSOR_TRUNCATE 2080
+#define WT_STAT_DSRC_CURSOR_TRUNCATE 2081
/*! cursor: update calls */
-#define WT_STAT_DSRC_CURSOR_UPDATE 2081
+#define WT_STAT_DSRC_CURSOR_UPDATE 2082
/*! reconciliation: dictionary matches */
-#define WT_STAT_DSRC_REC_DICTIONARY 2082
+#define WT_STAT_DSRC_REC_DICTIONARY 2083
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2083
+#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2084
/*! reconciliation: internal page key bytes discarded using suffix
* compression */
-#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2084
+#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2085
/*! reconciliation: internal page multi-block writes */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2085
+#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2086
/*! reconciliation: internal-page overflow keys */
-#define WT_STAT_DSRC_REC_OVERFLOW_KEY_INTERNAL 2086
+#define WT_STAT_DSRC_REC_OVERFLOW_KEY_INTERNAL 2087
/*! reconciliation: leaf page key bytes discarded using prefix compression */
-#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2087
+#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2088
/*! reconciliation: leaf page multi-block writes */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2088
+#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2089
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2089
+#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2090
/*! reconciliation: maximum blocks required for a page */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2090
+#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2091
/*! reconciliation: overflow values written */
-#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2091
+#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2092
/*! reconciliation: page checksum matches */
-#define WT_STAT_DSRC_REC_PAGE_MATCH 2092
+#define WT_STAT_DSRC_REC_PAGE_MATCH 2093
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_DSRC_REC_PAGES 2093
+#define WT_STAT_DSRC_REC_PAGES 2094
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_DSRC_REC_PAGES_EVICTION 2094
+#define WT_STAT_DSRC_REC_PAGES_EVICTION 2095
/*! reconciliation: pages deleted */
-#define WT_STAT_DSRC_REC_PAGE_DELETE 2095
+#define WT_STAT_DSRC_REC_PAGE_DELETE 2096
/*! session: object compaction */
-#define WT_STAT_DSRC_SESSION_COMPACT 2096
+#define WT_STAT_DSRC_SESSION_COMPACT 2097
/*! session: open cursor count */
-#define WT_STAT_DSRC_SESSION_CURSOR_OPEN 2097
+#define WT_STAT_DSRC_SESSION_CURSOR_OPEN 2098
/*! transaction: update conflicts */
-#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2098
+#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2099
/*!
* @}