{
  "slug": "farthest-in-future-replacement",
  "term": "Farthest-in-future replacement",
  "aliases": [
    "Farthest-next-use replacement",
    "Belady replacement",
    "OPT replacement"
  ],
  "definition": "Farthest-in-future replacement evicts a resident object whose next request is latest in a known future reference string.",
  "note": "For equal-size demand paging and unit miss cost, the rule is optimal but requires future references. Mattson et al. call it OPT, distinguishing it from the earlier MIN. [mattson-opt]\n\nWith unequal-size objects, repeatedly applying the rule need not minimize misses. The comparator must use the same bypass/admission contract. [foo]\n\nFOO's finite-trace lower/upper bounds do not require independent references; independence and nonconcentration enter its separate asymptotic-tightness theorem. Correlation does not itself invalidate the bracket, but a narrow gap is not guaranteed. The caching model must still match. [foo]\n\nFor ABCDCAB, A=2, B=C=D=1 and capacity 3 size units, mandatory farthest-next-use misses six times; an exact plan misses five times. These are constructed requests. [oracle]\n\nFor ABCABC, A=3, B=C=1, capacity 3 and bypass allowed, minimizing requests gives four misses/eight fetched units; minimizing payload gives five misses/seven fetched units. No plan achieves both minima. [oracle]\n\nFOO's interval objective excludes first-reference cost. In ABCDCAB, four compulsory misses leave two versus one repeat misses over three repeat requests; totals stay six versus five. Subtracting this constant preserves the optimizer, not relative reductions or denominators. This is not a warm-start experiment. [foo] [oracle]\n\nAn immediate-fill miss bound is not a delayed-fill latency bound. Fetch timing and joined requests need a separate state model and objective. [delayed-fsm]",
  "related": [
    "cache-inclusion-property",
    "belady-anomaly",
    "lru-replacement",
    "cache-admission",
    "delayed-hit"
  ],
  "citations": [
    {
      "id": "mattson-opt",
      "title": "Mattson et al. Evaluation techniques for storage hierarchies. IBM Systems Journal 9(2), 1970, pp. 93-95. DOI 10.1147/sj.92.0078.",
      "url": "https://publications.gc.ca/collections/collection_2020/isde-ised/Co22/Co22-315-1972-2-eng.pdf#page=82",
      "accessed": "2026-11-06"
    },
    {
      "id": "foo",
      "title": "Berger et al. Practical Bounds on Optimal Caching with Variable Object Sizes. POMACS 2(2), 2018, article 32. DOI 10.1145/3224427.",
      "url": "https://www.cs.cmu.edu/~harchol/Papers/Sigmetrics18c.pdf",
      "accessed": "2026-11-06"
    },
    {
      "id": "oracle",
      "title": "Hesela: offline-bound calculation, resident-state witnesses and controls.",
      "url": "https://hesela.com/analyses/sieve-cache-eviction-traces/#offline-bound",
      "accessed": "2026-11-06"
    },
    {
      "id": "delayed-fsm",
      "title": "Keerthana Gurushankar, Noah G. Singer and Bernardo Subercaseaux. Latency Guarantees for Caching with Delayed Hits. arXiv:2501.16535v1, 2025; section 2.",
      "url": "https://arxiv.org/pdf/2501.16535v1",
      "accessed": "2026-11-06"
    }
  ],
  "status": "research",
  "advantages": [],
  "limitations": [
    "Optimality is specific to an objective and model; future knowledge does not imply minimum latency or device I/O."
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-06",
  "provenance": [
    "The 1970 paper is reprinted in a 1972 Canadian government compilation; journal pages 93-95 correspond to PDF pages 82-84. [mattson-opt]"
  ]
}
