{
  "slug": "in-page-logging",
  "term": "In-page logging",
  "aliases": [
    "IPL"
  ],
  "definition": "In-page logging stores database page updates as log records beside an unchanged page in the same flash erase block.",
  "note": "Reads replay the page's logs; a full log area triggers a merge into a clean block. The 2007 recovery extension forces relevant log sectors at commit and excludes uncommitted updates from merging. No-force refers to data pages, not an absence of durable log writes. [ipl2007]\n\nTransactional IPL later adds snapshot-aware merging and alternative commit protocols with different recovery costs. [tipl2011]",
  "status": "research",
  "advantages": [],
  "limitations": [],
  "related": [
    "page-differential-logging",
    "physiological-logging",
    "nand-erase-block",
    "write-ahead-log"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "ipl2007",
      "title": "Lee and Moon. Design of Flash-Based DBMS: An In-Page Logging Approach. SIGMOD 2007, pp. 55-66, sections 3 and 5.",
      "url": "https://www2.cs.arizona.edu/~bkmoon/papers/sigmod07.pdf",
      "accessed": "2026-11-13"
    },
    {
      "id": "tipl2011",
      "title": "Lee and Moon. Transactional In-Page Logging for Multiversion Read Consistency and Recovery. ICDE 2011, pp. 876-887, sections III-VI.",
      "url": "https://www2.cs.arizona.edu/~bkmoon/papers/icde11.pdf",
      "accessed": "2026-11-13"
    },
    {
      "id": "hesela-ipl",
      "title": "Hesela: log placement, commit and retained history",
      "url": "https://hesela.com/analyses/nand-erase-block-size-gc-cost/#in-page-logging",
      "accessed": "2026-11-13"
    }
  ],
  "updated": "2026-11-13",
  "provenance": [
    "Historical research designs, not a feature claim for current SSDs. The IPL comparison is simulated; TIPL evaluates traced workloads. No hardware reproduction by Hesela."
  ]
}
