数据库已提交的事务为何会丢失?从fsync到异步提交的持久性权衡
数据库教科书告诉开发者一个简单的承诺:事务一旦提交,数据就是持久的。ACID中的"D"代表Durability——持久性。但生产环境中的实际情况远比教科书复杂:同样配置了主从复制、同样使用了SSD存储、同样收到了COMMIT成功的返回码,断电重启后,有些数据确实完好无损,有些却凭空消失了。 ...
数据库教科书告诉开发者一个简单的承诺:事务一旦提交,数据就是持久的。ACID中的"D"代表Durability——持久性。但生产环境中的实际情况远比教科书复杂:同样配置了主从复制、同样使用了SSD存储、同样收到了COMMIT成功的返回码,断电重启后,有些数据确实完好无损,有些却凭空消失了。 ...