summaryrefslogtreecommitdiff
path: root/src/docs
diff options
context:
space:
mode:
authorDon Anderson <dda@ddanderson.com>2015-07-06 10:50:13 -0400
committerDon Anderson <dda@ddanderson.com>2015-07-06 10:50:13 -0400
commit7f9a2c456d0545670f938846d7bfad68f23342c8 (patch)
treefc4d174465d57c3c60105431dbee56d2956788e7 /src/docs
parent85e26895795f79eeee637896436ba744c73ff839 (diff)
downloadmongo-7f9a2c456d0545670f938846d7bfad68f23342c8.tar.gz
WT-1988. Added a doc subsection discussing the interation between cursors and
eviction, and the need for using WT_CURSOR::reset.
Diffstat (limited to 'src/docs')
-rw-r--r--src/docs/cursors.dox20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/docs/cursors.dox b/src/docs/cursors.dox
index 06f4321ad02..da719f259e6 100644
--- a/src/docs/cursors.dox
+++ b/src/docs/cursors.dox
@@ -72,6 +72,26 @@ well as any key and value.
See @ref transactions for more information.
+@section cursors_eviction Cursors and Eviction
+
+Cursor positions hold resources that may inhibit the eviction of memory pages.
+While eviction can occur as the result of reaching a threshold of cache
+memory usage (see @ref_single tune_cache), it may also occur when an
+individual memory page grows to be larger than the configured \c
+memory_page_max (see the configuration in WT_SESSION::create).
+
+If a cursor is active on a page being considered for eviction, the eviction
+will defer until the cursor is moved. In the specific cases with multiple
+active cursors on a memory page that has reached maximum size, the
+WiredTiger library will never have simultaneous control over both cursors to
+move them to smaller, split pages. This may prevent a large page from ever
+being split and may potentially slow down the application.
+
+To avoid this situation, or any situation where eviction must be deferred,
+applications should call WT_CURSOR::reset during times that it does not need
+to keep a cursor positioned. A cursor that has been reset is not active and
+cannot inhibit eviction.
+
@section cursor_raw Raw mode
Cursors can be configured for raw mode by specifying the \c "raw" config