【问题标题】:Will the Write-Ahead-Log become the bottleneck of Cassandra?Write-Ahead-Log 会成为 Cassandra 的瓶颈吗?
【发布时间】:2021-07-24 23:32:02
【问题描述】:

在 Cassandra 数据库中,写入需要先记录在 Write Ahead Log 中,然后再添加到内存中的 memtable。由于Write Ahead Log在磁盘上,虽然是顺序写入(即只追加),但会不会比内存访问慢很多,成为写入的性能瓶颈?

如果我理解正确的话,Cassandra 支持将预写日志存储在操作系统缓存中的机制,然后每隔预先配置的时间(比如 10 秒)将其刷新到磁盘。但是,这是否意味着如果机器死机,这 10 秒内所做的数据更改可能会全部丢失?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    您可以使用commitlog-sync 配置控制是否同步提交日志。默认为periodic,每10秒同步到磁盘(由commitlog_sync_period_in_ms设置控制)。

    是的,如果您断电,则提交日志中的数据可能会丢失。但是 Cassandra 依赖于您有多个副本这一事实,如果您的设置正确,每个副本都应该位于单独的机架中(至少,如果您有额外的数据中心,则更好)并具有单独的电源等。

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多