【问题标题】:Storing commit log in an ephemeral disk?将提交日志存储在临时磁盘中?
【发布时间】:2016-12-07 21:04:14
【问题描述】:

在 EC2 中,如果停止并启动,或者重新启动,临时磁盘上的数据将被擦除。

问题是,将提交日志放在临时磁盘上是个好主意吗?

如果实例重新启动并丢失了提交日志,会发生什么? 我已经将复制因子设为 2,使用的是可用区感知的 NetworkTopologyStrategy

请指教

【问题讨论】:

标签: amazon-ec2 cassandra


【解决方案1】:

提交日志是 C* 持久写入架构的基本部分。对Cassandra Write Path 的简要介绍表明,每次写入都会进入内存表和提交日志。后者是 C* 在崩溃中幸存下来的方式。如果您将提交日志放在在系统崩溃时消失的临时磁盘上,那么您正在击败持久写入并且您将丢失节点上的数据。 RF 将帮助您确保节点中的数据将被恢复,但会使您面临第二台机器的崩溃。

当然,我会避免这种情况,EC2 虚拟机重启太频繁...

【讨论】:

  • 感谢您的建议,所以,我将使用 EBS
  • 您认为提交日志的存储性能需要数据存储所需的高性能吗?
  • @simo 如果您使用小写入,我建议将 commitlog 放在高性能 IOPS 设备上。否则为普通硬盘。
  • 如何将commitlog和db数据放在同一个高性能IOPS磁盘上?
  • 您的表现肯定会更好,但是否值得取决于您的工作负载的读/写比率。
猜你喜欢
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2015-10-22
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
相关资源
最近更新 更多