{
  "slug": "anvil",
  "term": "Anvil",
  "aliases": [
    "Anvil dTables"
  ],
  "definition": "Anvil is a research toolkit that composes specialized key-value storage modules called dTables into database storage back ends.",
  "note": "Composition: Writable journals absorb updates; read-only tables serve stored data. Managed dTables digest journals and combine older tables. [anvil-paper]\n\nDeletion: An overlay checks subordinate tables in priority order. An explicit nonexistent value stops the search; a missing key does not. [anvil-paper]\n\nReclamation: A deletion marker is removable only when the tables left outside the replacement no longer expose a value it must hide. The required markers therefore depend on which tables are combined. [anvil-paper]\n\nRecovery: The design separates a consistent prefix of committed transactions from requested durability. Its ordering mechanisms depend on Featherstitch or historical ext3 behavior, not a portable guarantee for arbitrary filesystems. [anvil-paper]\n\nLineage: SILT credits Anvil's composition of specialized stores as a design influence, not as an interchangeable implementation. [silt-paper]\n\nExample: In Hesela's three-layer model, two deletion markers cover an old value. Replacing only the newest layer can drop its marker because the middle one still masks the value. Replacing both newest layers must retain a marker. All 128 enumerated prefix replacements preserve visible results; deliberately dropping that last marker exposes the old value. [anvil-model]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The 2009 prototype lacks transaction abort and full concurrency; its results are not evidence of current hardware performance.",
      "citationIds": [
        "anvil-paper"
      ]
    }
  ],
  "related": [
    "silt",
    "lsm-tombstone"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-15",
  "citations": [
    {
      "id": "anvil-paper",
      "title": "Mammarella, Hovsepian and Kohler. Modular Data Storage with Anvil. SOSP 2009, sections 3, 4 and 5.3.",
      "url": "https://read.seas.harvard.edu/~kohler/pubs/mammarella09modular.pdf",
      "accessed": "2026-11-15"
    },
    {
      "id": "silt-paper",
      "title": "Lim et al. SILT: A Memory-Efficient, High-Performance Key-Value Store. SOSP 2011, multi-store design and related work.",
      "url": "https://www.cs.cmu.edu/~dga/papers/silt-sosp2011.pdf",
      "accessed": "2026-11-15"
    },
    {
      "id": "anvil-model",
      "title": "Hesela educational overlay model: 128 cases, assumptions and replacement-scope counterexample.",
      "url": "https://hesela.dev/research/anvil-overlay.json",
      "accessed": "2026-11-15"
    },
    {
      "id": "anvil-model-code",
      "title": "Reproducible JavaScript model; run with Node.js. This is not the Anvil engine.",
      "url": "https://hesela.dev/research/anvil-overlay.mjs",
      "accessed": "2026-11-15"
    }
  ],
  "provenance": [
    "Historical source synthesis and an original finite-state teaching model, not native Anvil execution, a crash test or a benchmark.",
    "The model assumes one key, fixed layer order and no concurrent mutation; it checks logical visibility, not physical erasure or durability."
  ]
}
