<!-- llms-explorer concept facts · https://llms-explorer.com/tree/eviction-updates-trigger-and-the-updates-ratio/ · pack 2026-10-31 · ~1749 tokens -->

# eviction_updates_trigger and the updates ratio

> Source-anchored research for eviction_updates_trigger and the updates ratio. Run status: COMPLETED.

Parent: [WiredTiger cache eviction and dirty ratio](https://llms-explorer.com/tree/wiredtiger-cache-eviction-and-dirty-ratio/) · 5 facets · 15 facts · page: https://llms-explorer.com/tree/eviction-updates-trigger-and-the-updates-ratio/

## 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](https://github.com/wiredtiger/wiredtiger/blob/mongodb-8.0/dist/api_data.py)
- 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](https://jira.mongodb.org/browse/WT-15538)
- 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](https://jira.mongodb.org/browse/WT-15538)
- 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](https://docs.percona.com/percona-monitoring-and-management/3/reference/dashboards/dashboard-mongodb-wiredtiger-details.html)

## 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](https://github.com/wiredtiger/wiredtiger/blob/mongodb-8.0/dist/api_data.py)
- 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](https://jira.mongodb.org/browse/WT-17698)
- 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](https://jira.mongodb.org/browse/WT-15843)

## 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](https://jira.mongodb.org/browse/WT-15538)

## 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](https://github.com/wiredtiger/wiredtiger/blob/develop/src/evict/evict_inline.h)
- 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](https://levelup.gitconnected.com/the-curious-case-of-mongodb-cache-evictions-2defa5d952bf)
- 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](https://jira.mongodb.org/browse/WT-15538)

## 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](https://github.com/wiredtiger/wiredtiger/blob/mongodb-8.0/dist/api_data.py)
- 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](https://jira.mongodb.org/browse/WT-15538)
- 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](https://jira.mongodb.org/browse/WT-17697)
- 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](https://docs.percona.com/percona-monitoring-and-management/3/reference/dashboards/dashboard-mongodb-wiredtiger-details.html)
