{
  "slug": "clock-pro",
  "term": "CLOCK-Pro",
  "aliases": [
    "CLOCK-Pro replacement"
  ],
  "definition": "CLOCK-Pro is an adaptive page-replacement policy combining CLOCK reference bits with bounded history of evicted pages.",
  "note": "Three hands manage hot pages, resident cold victims and cold-page test periods. Eviction can discard a cold page's data while retaining its metadata for a later reuse test. A nonresident history match still requires a page fetch. [clockpro]\n\nThe cold-page target increases after reuse within a test period and decreases when a test expires without reuse; these observations include resident and nonresident cold pages. [clockpro]",
  "status": "research",
  "advantages": [
    {
      "text": "Retained history lets replacement react to reuse after eviction.",
      "citationIds": [
        "clockpro"
      ]
    }
  ],
  "limitations": [
    {
      "text": "The historical Linux 2.4.21 prototype does not establish present-day implementation behavior or universal speedups.",
      "citationIds": [
        "clockpro"
      ]
    }
  ],
  "related": [
    "clock-replacement",
    "ghost-cache-entry",
    "cache-pollution",
    "adaptive-replacement-cache"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-24",
  "citations": [
    {
      "id": "clockpro",
      "title": "Song Jiang, Feng Chen and Xiaodong Zhang. CLOCK-Pro: An Effective Improvement of the CLOCK Replacement. USENIX ATC 2005, sections 4.2-4.4 and 5.2.",
      "url": "https://www.usenix.org/legacy/event/usenix05/tech/general/full_papers/jiang/jiang.pdf",
      "accessed": "2026-10-24"
    },
    {
      "id": "hesela",
      "title": "Hesela: cache-history matches versus resident hits.",
      "url": "https://hesela.com/analyses/sieve-cache-eviction-traces/#history",
      "accessed": "2026-10-24"
    }
  ],
  "provenance": [
    "Primary-source review, not a reproduction or deployment recommendation."
  ]
}
