{
  "slug": "parity-logging",
  "term": "Parity logging",
  "aliases": [],
  "definition": "Parity logging records pending parity changes in a log for later application while updating data in place.",
  "note": "The original ISCA 1993 design batches parity updates to replace small random accesses with larger transfers. Its parity-update image is the XOR of old and new data, so forming it still requires the old value unless cached. Recovery must incorporate unapplied log records before using parity to reconstruct lost data.\n\nLinux MD Partial Parity Log instead records unchanged stripe chunks' XOR for write-hole recovery; it is not this update-performance scheme.",
  "status": "research",
  "advantages": [
    "Batches parity maintenance while keeping normal data reads direct"
  ],
  "limitations": [
    "Pending logs participate in recovery and consume storage",
    "Log appends and eventual parity integration still cost I/O"
  ],
  "related": [
    "read-modify-write",
    "partial-parity-log",
    "speculative-partial-write",
    "parity-raid"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-19",
  "citations": [
    {
      "id": "stodolsky1993",
      "title": "Stodolsky, Gibson and Holland. Parity Logging: Overcoming the Small Write Problem in Redundant Disk Arrays. ISCA 1993, section 2.",
      "url": "https://www.pdl.cmu.edu/PDL-FTP/ParityLogging/ISCA93.pdf",
      "accessed": "2026-10-19"
    },
    {
      "id": "linux-ppl",
      "title": "Linux v6.12: Partial Parity Log, protected failure cases and limitations.",
      "url": "https://github.com/torvalds/linux/blob/v6.12/Documentation/driver-api/md/raid5-ppl.rst",
      "accessed": "2026-10-19"
    },
    {
      "id": "hesela",
      "title": "Hesela: RAID write accounting and parity replay traces",
      "url": "https://hesela.com/analyses/raid-write-penalty-io-not-speed/#parity-logging",
      "accessed": "2026-10-19"
    }
  ]
}
