禁用提交日志是否安全?

时间:2013-03-01 12:02:13

标签: cassandra

如果我们使用复制,是否可以安全地禁用提交日志?当节点出现故障时,通常是由于硬盘故障,因此提交日志对我们的持久性没有帮助,但复制会有所帮助。为什么我们在使用复制时甚至需要提交日志?

1 个答案:

答案 0 :(得分:1)

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

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

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