代码之家  ›  专栏  ›  技术社区  ›  weilueluo

如果在追加过程中仅追加数据库崩溃,会发生什么情况?

  •  0
  • weilueluo  · 技术社区  · 1 年前

    在《设计数据密集型应用程序》一书中

    如果段文件是 仅追加或不可变。对于崩溃恢复,您不需要担心 如果在覆盖某个值时发生崩溃 一部分是旧数据,一部分是新数据。

    但是,如果我们在追加时崩溃了呢?它不是只剩下我们打算附加的部分数据吗?他们是否对段文件使用校验和并丢弃整个段文件?

    1 回复  |  直到 1 年前
        1
  •  1
  •   yuri kilochek    1 年前

    常用的文件系统保证未写入的文件字节范围在任何情况下都不会受到写入的影响(除了错误和硬件故障)。因此,您可以分别对每个事务进行校验,并在崩溃时进行校验 恢复通过截断段文件仅丢弃第一个部分写入的事务之后的事务。