{
  "slug": "physiological-logging",
  "term": "Physiological logging",
  "aliases": [
    "Physiological redo logging"
  ],
  "definition": "Physiological logging identifies an affected database page explicitly while describing the change as a logical operation within that page.",
  "note": "The redo record includes a page identifier, an operation and its arguments. This differs from logical redo that locates the target for example through a key lookup, and from physical logging tied to byte offsets within the page. The record format and the recovery protocol must be considered together. [lomet-2011]\n\nUndo need not return to the original page. ARIES/IM shows a concurrent B-tree split moving an inserted key from P1 to P2; rollback then finds the key on P2. Its compensation record logs the deletion actually performed, enabling page-oriented redo of that compensation. ARIES/IM first checks the original page and uses tree traversal when page-oriented undo cannot be performed; not every undo needs a tree search. [aries-im] [aries-beyond]\n\nLogical redo that finds a record through a B-tree depends on a usable placement index. In Deuteronomy, data-component recovery therefore precedes transaction-level replay; physiological redo can identify its target page without that tree traversal. This is an ordering dependency, not a universal performance ranking. [lomet-2011]",
  "status": "shipping",
  "advantages": [
    {
      "text": "A page identifier allows redo to locate the affected page without retraversing the index to find the record.",
      "citationIds": [
        "lomet-2011"
      ]
    }
  ],
  "limitations": [
    {
      "text": "Physiological logging is a representation technique, not a synonym for WAL or a complete recovery algorithm; durability and recovery ordering remain protocol requirements.",
      "citationIds": [
        "aries-beyond"
      ]
    },
    {
      "text": "A page-LSN comparison is part of the redo protocol, not evidence that an arbitrary operation is intrinsically idempotent.",
      "citationIds": [
        "lomet-2011",
        "aries-beyond"
      ]
    }
  ],
  "related": [
    "logical-journaling",
    "physical-journaling",
    "page-lsn",
    "compensation-log-record",
    "write-ahead-log"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "lomet-2011",
      "title": "David Lomet, Kostas Tzoumas and Michael Zwilling. Implementing Performance Competitive Logical Recovery. PVLDB 4(7), 430-439 (2011), sections 1.2, 2.1 and 2.2.",
      "url": "https://www.vldb.org/pvldb/vol4/p430-lomet.pdf",
      "accessed": "2026-11-02"
    },
    {
      "id": "aries-im",
      "title": "Mohan and Levine. ARIES/IM: An Efficient and High Concurrency Index Management Method Using Write-Ahead Logging. SIGMOD 1992, Figure 1 and section 3, p. 378.",
      "url": "https://users.cs.utah.edu/~pandey/courses/cs6530/fall23/papers/logrecover/aries.pdf",
      "accessed": "2026-10-30"
    },
    {
      "id": "aries-beyond",
      "title": "C. Mohan. Repeating History Beyond ARIES. VLDB 1999, sections 3.2.1-3.2.2.",
      "url": "https://www.vldb.org/conf/1999/P1.pdf",
      "accessed": "2026-10-30"
    },
    {
      "id": "hesela-wal",
      "title": "Hesela: Physiological redo and logical undo in database recovery",
      "url": "https://hesela.com/analyses/wal-checkpoints-torn-pages/#physiological-logging",
      "accessed": "2026-10-30"
    }
  ],
  "updated": "2026-11-02"
}
