{
  "slug": "duplicate-request-cache",
  "term": "Duplicate request cache",
  "aliases": [
    "Duplicate reply cache",
    "DRC"
  ],
  "definition": "A duplicate request cache retains request identities and completion information to recognize retries without repeating completed work.",
  "note": "NFSv3 servers can return a remembered completion status for a recognized duplicate. Cache loss or entry reuse can remove that protection, including after reconnecting over a reliable transport. [nfs3]\n\nNFSv4.1 uses session slots and sequence IDs. Omitting a full reply does not remove execution tracking: a retry can return NFS4ERR_RETRY_UNCACHED_REP. Persistent sessions have additional restart obligations. [nfs4]\n\nThis is request history, not a file-data cache or a content-deduplication index. Duplicate detection alone does not establish that the file's bytes are durably stored. [nfs3]",
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "related": [
    "retry-deduplication",
    "idempotency",
    "nfs-storage",
    "nas",
    "nfs-write-verifier"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "nfs3",
      "title": "RFC 1813: NFSv3 duplicate request cache, section 4.5.",
      "url": "https://www.rfc-editor.org/rfc/rfc1813.html#section-4.5",
      "accessed": "2026-10-19"
    },
    {
      "id": "nfs4",
      "title": "RFC 8881: NFSv4.1 session replay, optional reply caching and persistence, section 2.10.6.",
      "url": "https://www.rfc-editor.org/rfc/rfc8881.html#section-2.10.6",
      "accessed": "2026-10-19"
    },
    {
      "id": "hesela",
      "title": "Storage timeouts: an expired timer is not a cancelled write",
      "url": "https://hesela.com/analyses/storage-timeouts-uncertain-completion/#nfs-retries",
      "accessed": "2026-10-19"
    }
  ],
  "updated": "2026-10-19"
}
