惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
罗磊的独立博客
C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
I
InfoQ
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
B
Blog RSS Feed

blag

SQLite prefixes its temp files with `etilqs_` - blag Setsum - order agnostic, additive, subtractive checksum - blag Oldest recorded transaction - blag Replacing a cache service with a database - blag SQLite commits are not durable under default settings - blag PSA: SQLite WAL checksums fail silently and may lose data - blag Rickrolling Turso DB (SQLite rewrite in Rust) - blag Collection of insane and fun facts about SQLite - blag How bloom filters made SQLite 10x faster - blag In search of a faster SQLite - blag Galloping Search - blag Building a distributed log using S3 (under 150 lines of Go) - blag Zero Disk Architecture - blag PSA: SQLite does not do checksums - blag Disaggregated Storage - a brief introduction - blag Why does SQLite (in production) have such a bad rep? - blag SQLite Slaps - blag Now - blag Learning C - blag Snapshot Testing - blag Win: contribution to libSQL (SQLite) codebase - blag Errata in Hekaton MVCC paper - blag Internet is wholesome: MVCC edition - blag It is becoming difficult for me to be productive in Python - blag MongoDB secondary only index - blag Introducing CaskDB – a project to teach you writing a key-value store - blag Recurse Center: Winter Break - blag Recurse Center Day 24: Hacking Go compiler to add a new keyword - blag Recurse Center Day 20: Django v4 upgrade (from v1) - blag Recurse Center Day 19 - blag
PSA: Most databases do not do checksums by default - blag
2024-11-09 · via blag

This is a follow up to my post: PSA: SQLite does not do checksums

My friend, who claims to be a bigger fan of SQLite than me (debatable), said that my previous blog post was unfair. My fren is right in a way. I wrote about SQLite because that’s what I’m most familiar with and what I use every day. But here’s a follow-up: most databases don’t have checksums enabled by default. As explained earlier, even a single bit flip can be devastating, and your database or application won’t even know about it. Alice would have lost money even on Postgres.

I thought I would make a list of databases which don’t have checksums, but it turns out it’s easier to make a list of databases which enable it by default. Postgres, Microsoft SQL Server, and many others don’t have checksums by default!

So, here’s a short list of databases that do enable checksums by default:

  • TigerBeetle
  • FoundationDB
  • Oracle (I have no idea which version, check the documentation)
  • MongoDB
  • ClickHouse
  • MySQL with InnoDB

Note that the upcoming Postgres 18 will have checksums enabled by default in cluster mode.

Did I miss any? Let me know.

Reading

  • TigerBeetle’s safety page is a great read on this topic.
  • Redundancy Does Not Imply Fault Tolerance: Analysis of Distributed Storage Reactions to Single Errors and Corruptions - link