summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/docs/shared-cache.dox
diff options
context:
space:
mode:
authorRamon Fernandez <ramon@mongodb.com>2016-01-27 17:17:17 -0500
committerRamon Fernandez <ramon@mongodb.com>2016-01-27 17:17:21 -0500
commit90118b147a6943b19dc929862a11071538db1438 (patch)
treed1e2c409595332174953e7dbe2db262935d89ae5 /src/third_party/wiredtiger/src/docs/shared-cache.dox
parentb8cad6a59cbce2831e69e6b94f9544d83d6e00b0 (diff)
downloadmongo-90118b147a6943b19dc929862a11071538db1438.tar.gz
Import wiredtiger-wiredtiger-2.7.0-505-g7fea169.tar.gz from wiredtiger branch mongodb-3.4
ref: 44463c5..7fea169 WT-2355 Fix minor scratch buffer usage in logging. WT-2348 xargs -P isn't portable WT-2347 Java: schema format edge cases WT-2344 OS X compiler warning WT-2342 Enhance wtperf to support background create and drop operations WT-2340 Add logging guarantee assertions, whitespace WT-2339 format post-rebalance verify failure (stress run #11586) WT-2338 Disable using pre-allocated log files when backup cursor is open WT-2335 NULL pointer crash in config_check_search with invalid configuration string WT-2333 Add a flag so drop doesn't block WT-2332 Bug in logging write-no-sync mode WT-2331 Checking of search() result for reference cursors before join() WT-2328 schema drop does direct unlink, it should use a block manager interface. WT-2326 Change WTPERF to use new memory allocation functions instead of the standard WT-2321 WT-2321: race between eviction and worker threads on the eviction queue WT-2320 Only check copyright when cutting releases WT-2316 stress test failure: WT_CURSOR.prev out-of-order returns WT-2314 page-swap error handling is inconsistent WT-2313 sweep-server: conn_dhandle.c, 610: dhandle != conn->cache->evict_file_next WT-2312 re-creating a deleted column-store page can corrupt the in-memory tree WT-2308 custom extractor for ref_cursors in join cursor WT-2305 Fix coverity scan issues on 23/12/2015 WT-2296 New log algorithm needs improving for sync/flush settings WT-2295 WT_SESSION.create does a full-scan of the main table WT-2287 WT_SESSION.rebalance WT-2275 broken DB after application crash WT-2267 Improve wtperf throttling implementation to provide steady load WT-2247 variable-length column-store in-memory page splits WT-2242 WiredTiger treats dead trees the same as other trees in eviction WT-2142 Connection cleanup in Python tests WT-2073 metadata cleanups WT-1801 Add a directory sync after rollback of a WT_SESSION::rename operation WT-1517 schema format edge cases SERVER-22064 Coverity analysis defect 77699: Unchecked return value SERVER-21619 sys-perf: WT crash during core_workloads_WT execution
Diffstat (limited to 'src/third_party/wiredtiger/src/docs/shared-cache.dox')
-rw-r--r--src/third_party/wiredtiger/src/docs/shared-cache.dox41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/src/docs/shared-cache.dox b/src/third_party/wiredtiger/src/docs/shared-cache.dox
new file mode 100644
index 00000000000..95422caabda
--- /dev/null
+++ b/src/third_party/wiredtiger/src/docs/shared-cache.dox
@@ -0,0 +1,41 @@
+/*! @m_page{{c,java},shared_cache,Per-process shared caches}
+
+WiredTiger supports sharing a single cache among multiple databases within
+a process.
+
+An application configures a shared cache by specifying a shared_cache name
+to the ::wiredtiger_open function. Applications can optionally
+set a minimum amount of cache any connection in the pool will be assigned
+and the granularity at which the cache pool is redistributed among
+connections - called the chunk size.
+
+The shared cache implementation assigns a certain amount of cache to each
+participating database. Each database manages its allocated cache
+as it would when not using a shared cache - thus databases using a shared
+cache can have different eviction policies. There is a thread that monitors
+the cache usage of each database and redistributes the cache among
+participants according to where it is most likely to improve performance.
+The cache is redistributed in chunks which are of a configurable size. Once
+a database has had a chunk of cache added or removed it will be given
+time to start effectively using that cache before it is considered for further
+adjustment. If a small chunk size is configured it will take longer for the
+shared cache to adjust to changes in participants. Reallocation of resources
+happens periodically and whenever a database joins the shared cache.
+
+The reallocation of resources is determined by comparing the amount of eviction
+activity in a particular database to that of the other participating databases.
+
+When a database is opened it will be allocated the amount of cache configured
+as the shared cache minimum, regardless of whether the cache pool is currently
+fully utilized. Other databases will have their assigned cache size
+reduced so the total cache size used will return within the bounds - there
+may be a period when the actual usage exceeds the configured maximum.
+This is especially likely if many databases join the shared cache in a short
+period. When a database is closed any resources it is using are distributed
+among the other databases.
+
+WiredTiger shared cache tuning options can be configured when first opening a
+database via ::wiredtiger_open or changed after open using the
+WT_CONNECTION::reconfigure method.
+
+ */