1

如果我们使用复制,禁用提交日志是否安全?当一个节点发生故障时,通常是由于硬盘故障,因此在该提交日志中不会帮助我们提高持久性,但复制会。为什么我们在使用复制时甚至需要提交日志?

4

1 回答 1

1

如果没有提交日志,存储在副本上的内存表中的数据可能需要很长时间(可能是无限的,但实际上通常是几分钟)才能写入磁盘。这意味着,在该窗口内,您可能会丢失写入。例如,如果您的数据中心断电,您可能会丢失所有副本上最后几分钟的所有写入。提交日志(默认情况下)每 10 秒同步一次,因此如果同时发生故障,您最多会丢失 10 秒的数据。

但是,如果您使用多数据中心复制,那么要丢失数据,您将需要跨数据中心同时发生故障。

这是一种权衡:提交日志没有复制保护,以防止单个节点崩溃或发生非破坏性故障。通过在单个 DC 中进行复制,它可以防止整个 DC 故障,例如电源故障。通过多 DC 中的复制,它可以防止相关故障。您可以根据启用提交日志的成本与丢失最近写入的成本来决定需要多大的弹性。

于 2013-03-01T14:10:34.563 回答