You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
storage: add per-page checksums to fact pages and B+tree pages (file format v8) #388
Only the header has a checksum. src/storage/packed_pages.rs and src/storage/btree_v6.rs store no checksum per page. A torn write, a bad sector, or a bug that writes to the wrong page stays hidden until:
SQLite, LMDB and most embedded stores check each page when they read it, or offer an option to.
Ask
Add a CRC32 (the crate already uses crc32fast) to every fact page and every B+tree node page. Check it on each read. On a mismatch, return a structured STG-0xx error. Never return data from a page that fails the check.
Done on v3 in #444. Every non-meta page carries a CRC32, its own page id and its generation, checked on every read (STG-029/030/031), and the meta pages carry a whole-page CRC. #452 adds tests showing that a damaged leaf, internal node, dictionary page, value page or free-list page fails the read or checkpoint that reaches it.
Activity
Merge pull request #444 from project-minigraf/feat/v8-pr2-page-format
adityamukho commentedon Oct 6, 2026
Done on
v3in #444. Every non-meta page carries a CRC32, its own page id and its generation, checked on every read (STG-029/030/031), and the meta pages carry a whole-page CRC. #452 adds tests showing that a damaged leaf, internal node, dictionary page, value page or free-list page fails the read or checkpoint that reaches it.