{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-14",
  "slug": "zfs-transaction-group",
  "term": "ZFS transaction group",
  "aliases": [
    "TXG",
    "txg"
  ],
  "definition": "A ZFS transaction group is an ordered batch of changes whose synchronization advances the pool's consistent persistent state.",
  "note": "OpenZFS 2.3.4 describes open, quiescing and syncing states, potentially occupied by different groups at the same time. Syncing writes accumulated state and finishes by writing a new uberblock. A TXG identifier is not a timestamp or an application transaction ID, and the configured timeout does not guarantee a maximum crash-loss window. [txg-source] Once a TXG is durable, its in-memory intent records can be discarded without requiring a separate on-disk log write. [zil-source]",
  "related": [
    "zfs-intent-log",
    "zfs-separate-log",
    "copy-on-write",
    "crash-consistency",
    "database-checkpoint"
  ],
  "citations": [
    {
      "id": "txg-source",
      "title": "OpenZFS 2.3.4: txg.c, transaction-group lifecycle and synchronization",
      "url": "https://github.com/openzfs/zfs/blob/zfs-2.3.4/module/zfs/txg.c",
      "accessed": "2026-10-14"
    },
    {
      "id": "zil-source",
      "title": "OpenZFS 2.3.4: zil.c, log lifecycle, zil_commit and zil_replay",
      "url": "https://github.com/openzfs/zfs/blob/zfs-2.3.4/module/zfs/zil.c",
      "accessed": "2026-10-14"
    }
  ]
}
