eviction_updates_trigger and the updates ratio
Parent: WiredTiger cache eviction and dirty ratio · Published reference · snapshot 2026-10-31
↓ Facts as markdownall context files
Source-anchored research for eviction_updates_trigger and the updates ratio. Run status: COMPLETED.
These notes link each claim to its source. Some citations identify archived research reports that are no longer hosted on this site. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
How it works
- The mongodb-8.0 API definition accepts eviction_updates_trigger values from 1 through 100 as percentages of cache capacity and values greater than 100 as absolute byte sizes. It requires the trigger to exceed the update target and not exceed cache_size; it says this setting changes behavior only below eviction_trigger. (low confidence) (verified as of 2026-10-30) [source]
- Update memory and dirty-page memory are distinct pressure dimensions. WT-15538 documents updates ratios greater than dirty ratios because update content can reside on clean pages; the threshold implementation independently checks update bytes. Consequently, a low dirty ratio alone does not exclude update-trigger pressure. (high confidence) (verified as of 2026-09-07) [source]
- WT-15538 explicitly discourages legacy_page_visit_strategy=true for this problem because it found no clear evidence of benefit. (low confidence) (verified as of 2026-09-07) [source]
- Percona's WiredTiger Details dashboard documents current cache bytes, maximum cache capacity, and modified/unmodified eviction rates as separate panels. These provide surrounding pressure context when investigating an updates ratio; the page does not itself define an updates-ratio panel or establish the update trigger's value. (low confidence) (verified as of 2026-05-28) [source]
Measurements and reference values
- In the inspected mongodb-8.0 configuration, eviction_updates_target starts worker-thread eviction and eviction_updates_trigger recruits application threads when update memory crosses its threshold. Their default configuration values are 0, meaning automatic calculation at half the dirty target and dirty trigger respectively; with the documented 5%/20% dirty defaults this yields 2.5%/10% update thresholds. (high confidence) (verified as of 2026-10-30) [source]
- WT-17698 reports that changing the automatic approximately 10% updates trigger to 95% increased bulk_insert_w1 p95 latency by 13%. Its other tested workloads never reached the old trigger, so the ticket rejects attributing their differences to this knob. The comparison used a historical stable region with few fresh baselines; the result is workload-specific evidence, not a general regression estimate. (low confidence) (verified as of 2026-10-30) [source]
- WT-15843 proposed increasing the default updates trigger from 10% to 20%, but its resolution is Duplicate, linking to the evaluation of 95%; this ticket is not evidence that either proposed default shipped. (low confidence) (verified as of 2026-10-01) [source]
Problems, failure modes and limitations
- WT-15538 describes a failure pattern observed in several MongoDB 7.x and 8.x systems: update memory remains above eviction_updates_trigger despite eviction assistance. Its reported cases have caches of at least 72 GB, workloads of 2,000+ updates/second, and often only one or two affected replicas. These are observations from that investigation, not proven prerequisites for every updates-pressure incident. (low confidence) (verified as of 2026-10-28) [source]
Comparisons and alternatives
- The updates ratio is a memory-capacity ratio: approximately 100 × update bytes / configured cache bytes, rather than updates per second or the fraction of operations that update documents. The inspected threshold implementation uses cache_size + 1 as its denominator to avoid division by zero; the statistics definitions label the numerator 'bytes allocated for updates' and the capacity 'maximum bytes configured'. (high confidence) (verified as of 2026-10-30) [source]
- A July 2023 GoTo Financial engineer's incident-inspired narrative describes update bytes intermittently crossing 10.0–10.1% of cache. The author uses an imagined reservation workload rather than publishing the company's full RCA, so it is qualitative corroboration rather than a reproducible benchmark. (low confidence) [source]
- Raising eviction_updates_trigger is a conditional workaround rather than a universal tuning recommendation. WT-15538 recommends incremental increases with observation for its large-cache failure mode and warns of fragmentation, higher memory footprint, and reduced space for cached pages. WT-17698 separately advises against adopting 95% as a global default on the basis of its sys-perf evaluation. (high confidence) (verified as of 2026-10-30) [source]
Facts and statements
- eviction_updates_target starts worker-thread eviction of update content; eviction_updates_trigger is the higher threshold that recruits request-processing threads to reclaim it. (medium confidence) [source]
- For the affected WT-15538 workload class, the ticket recommends incrementally increasing eviction_updates_trigger and monitoring the effect; it warns that retaining more updates can increase memory fragmentation, OOM exposure, and cache misses. This is a case-specific workaround. (low confidence) (verified as of 2026-09-07) [source]
- WT-17697 reports that removing the entire updates-eviction dimension produced net performance regressions in its experiment. It also changed updates-pressure visibility to admission control, which the author identifies as a confound; its proposed soft-target-only removal remains untested. (low confidence) (verified as of 2026-06-04) [source]
- Percona's WiredTiger dashboard distinguishes configured maximum cache size from current usage and separately charts clean and dirty pages; those panels provide cache context, but they do not by themselves establish the updates ratio defined by update-byte accounting. (medium confidence) [source]
Children
- No children recorded.