{
  "slug": "greedydual-size",
  "term": "GreedyDual-Size",
  "aliases": [
    "GDS",
    "GD-Size"
  ],
  "definition": "GreedyDual-Size is a cache-replacement policy that combines retrieval cost per unit size with aging and refreshes priority on access.",
  "note": "On insertion or a hit, set H = L + cost/size. Evict a minimum-H object when space is needed, advancing L to that victim's H, and repeat until the requested object fits. L is an eviction-driven offset, not elapsed time; it avoids decrementing every resident priority. [cao]\n\nThe cost unit defines the objective: unit cost counts retrievals, while cost equal to size counts fetched bytes. Neither is automatically a latency model. Young's related Landlord formulation permits different hit-credit refresh choices; those choices need not reproduce the same eviction history. [young]\n\nDULO adapts this cost-density idea to sequences of disk blocks. Its historical design favors retaining short sequences under an assumed equal sequence-fetch cost, rather than merely minimizing block misses. That assumption is not a measurement of current SSDs. [dulo]\n\nHesela's exact-arithmetic replay compares explicit decrements with the common-offset representation after every request. Deterministic identifier-order ties, fixed object metadata and initially empty caches are declared model choices. Operation counts exclude victim search and do not establish a runtime speedup. [hesela]\n\nFor the declared seven-request witness, unit-cost GDS misses eight size units and byte-cost GDS misses nine, out of eleven requested. This is a counterexample to a per-trace optimality claim, not evidence that unit cost generally wins. The tie rule and full inputs are in the replay packet. [hesela]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The original evaluation used historical Web-access traces; its performance comparisons are not a guarantee for a current storage workload.",
      "citationIds": [
        "cao"
      ]
    },
    {
      "text": "The file-caching model does not resolve changing retrieval costs, cache consistency, or distributed coordination.",
      "citationIds": [
        "young"
      ]
    }
  ],
  "related": [
    "request-hit-ratio",
    "byte-hit-ratio",
    "cache-pollution",
    "cache-admission",
    "lru-replacement"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-03",
  "citations": [
    {
      "id": "cao",
      "title": "Cao and Irani. Cost-Aware WWW Proxy Caching Algorithms. USITS 1997, sections 3-5 and Figure 5.",
      "url": "https://www.usenix.org/legacy/publications/library/proceedings/usits97/full_papers/cao/cao.pdf",
      "accessed": "2026-11-03"
    },
    {
      "id": "young",
      "title": "Young. On-Line File Caching. Algorithmica 33 (2002), pp. 371-383, section 1 and Figure 1. DOI: 10.1007/s00453-001-0124-5.",
      "url": "https://www.cs.ucr.edu/~neal/Young02Online.pdf",
      "accessed": "2026-11-03"
    },
    {
      "id": "dulo",
      "title": "Jiang, Ding, Chen, Tan and Zhang. DULO. FAST 2005, sections 3.4 and 4.",
      "url": "https://www.usenix.org/legacy/event/fast05/tech/full_papers/jiang/jiang_html/index.html",
      "accessed": "2026-11-03"
    },
    {
      "id": "hesela",
      "title": "Hesela. GreedyDual-Size priority equivalence: constructed inputs, exact replay and limitations.",
      "url": "https://hesela.dev/research/greedydual-size/README.md",
      "accessed": "2026-11-03"
    }
  ],
  "provenance": [
    "Primary-source synthesis plus constructed arithmetic examples, not reproduction of the papers' trace-driven performance measurements."
  ]
}
