{
  "slug": "bztree",
  "term": "BzTree",
  "aliases": [],
  "definition": "BzTree is a latch-free persistent B+ tree that uses PMwCAS for recoverable multi-word state changes.",
  "note": "Persistent allocation and descriptor recovery still matter. Allocation epochs distinguish unfinished in-node reservations after restart; consolidation later reclaims that space. Database transaction concurrency control remains outside the index. [bztree-paper]\n\nThe inspected SFU implementation requests dependencies from floating master branches. Pinning its root commit alone does not reconstruct a historical build. [bztree-build]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The later PMDK implementation and original evaluation are different experimental systems; their results are not a controlled cross-study speedup.",
      "citationIds": [
        "bztree-evaluation"
      ]
    }
  ],
  "related": [
    "pmwcas",
    "b-plus-tree",
    "fptree",
    "persistent-memory",
    "crash-consistency"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-13",
  "citations": [
    {
      "id": "bztree-paper",
      "title": "Arulraj et al. BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory. PVLDB 11(5), 553-565, 2018, sections 3.1 and 6.",
      "url": "https://www.vldb.org/pvldb/vol11/p553-arulraj.pdf",
      "accessed": "2026-11-13"
    },
    {
      "id": "bztree-evaluation",
      "title": "Lersch et al. Evaluating Persistent Memory Range Indexes. PVLDB 13(4), 574-587, 2019, sections 5.1-5.2.",
      "url": "https://www.vldb.org/pvldb/vol13/p574-lersch.pdf",
      "accessed": "2026-11-13"
    },
    {
      "id": "bztree-build",
      "title": "SFU BzTree, revision b2e7fcb: backend selection and floating dependency revisions.",
      "url": "https://github.com/sfu-dis/bztree/blob/b2e7fcb5c70ac79b577a1d0e5d30a4b6207d6464/CMakeLists.txt",
      "accessed": "2026-11-13"
    },
    {
      "id": "hesela-pmem",
      "title": "Hesela: BzTree recovery and reproducible backend-selection evidence.",
      "url": "https://hesela.com/analyses/pmem-persistence-domains-dax/#bztree-recovery",
      "accessed": "2026-11-13"
    }
  ],
  "provenance": [
    "Source review and a replayed CMake configuration-fragment probe; no full index build, runtime experiment or power-cut test."
  ]
}
