apache cassandra v3.0.9中关于nodetool修复的指南

apache cassandra v3.0.9中关于nodetool修复的指南,cassandra,cassandra-3.0,repair,Cassandra,Cassandra 3.0,Repair,我们使用的是ApacheCassandraV3.0.9,有3个DC。我们在运行nodetool修复时遇到持续的故障,大多数情况下,修复过程会导致大的停机。我们有3个不同的数据中心,由4、4和15个节点组成。在RF=3时,总数据约为200 GB,我们使用LCS。RAM为16GB,其中6GB专用于堆。大多数情况下,我们尝试运行完全修复,修复过程失败,GC暂停时间过长,节点变得无响应。除了修复时,我们的节点在堆上运行良好,GC暂停几乎不超过300毫秒。我有以下疑问 是否仍然需要在gc\u grace\

我们使用的是ApacheCassandraV3.0.9,有3个DC。我们在运行nodetool修复时遇到持续的故障,大多数情况下,修复过程会导致大的停机。我们有3个不同的数据中心,由4、4和15个节点组成。在RF=3时,总数据约为200 GB,我们使用LCS。RAM为16GB,其中6GB专用于堆。大多数情况下,我们尝试运行完全修复,修复过程失败,GC暂停时间过长,节点变得无响应。除了修复时,我们的节点在堆上运行良好,GC暂停几乎不超过300毫秒。我有以下疑问

  • 是否仍然需要在
    gc\u grace\u秒之前运行完全修复
    ,或者在apache cassandra v3.0.9中,仅增量修复就足够了

  • 我是否需要在集群的每个节点、每个数据中心的任何一个节点或整个集群的任何节点上运行增量顺序修复?一个接一个还是同时

  • 由于某些节点在修复过程中变得无响应/死亡,因此修复失败的缺点是什么?在开始另一个修复会话之前需要注意的任何步骤

  • 根本不安排维修有什么坏处

  • 我们在3.0.9版上立即开始了cassandra部署。Apache Cassandra上提到的迁移仍然需要吗

  • 还需要全面修理。增量修复将SSTABLE分为“已修复”和“未修复”两部分,“已修复”部分将不会在以后进行修复,这就是增量修复更有效的原因。但是,如果“修复”的sstables中存在数据损坏,则只有完全修复才能修复;我们的经验是每天进行增量维修,每个宽限期仅进行一次全面维修。此外,当您进行增量修复时,可以延长宽限期

  • 最好在每个节点上逐个运行增量修复;您可以有一个cron作业或编写一个简单的调度程序来完成这项工作

  • 修复故障,重新运行即可;据我所知没有副作用

  • 如果您不进行修复,随着时间的推移,您的数据一致性将面临危险;Cassandra采用了最终一致性概念,这意味着除非您明确指定,否则在向其写入数据时,它不能保证强一致性。修复对于保证后台数据的更新和一致性非常重要

  • 如果您已经在集群中运行了完全修复,则不需要显式迁移

  • 还需要全面修理。增量修复将SSTABLE分为“已修复”和“未修复”两部分,“已修复”部分将不会在以后进行修复,这就是增量修复更有效的原因。但是,如果“修复”的sstables中存在数据损坏,则只有完全修复才能修复;我们的经验是每天进行增量维修,每个宽限期仅进行一次全面维修。此外,当您进行增量修复时,可以延长宽限期

  • 最好在每个节点上逐个运行增量修复;您可以有一个cron作业或编写一个简单的调度程序来完成这项工作

  • 修复故障,重新运行即可;据我所知没有副作用

  • 如果您不进行修复,随着时间的推移,您的数据一致性将面临危险;Cassandra采用了最终一致性概念,这意味着除非您明确指定,否则在向其写入数据时,它不能保证强一致性。修复对于保证后台数据的更新和一致性非常重要

  • 如果您已经在集群中运行了完全修复,则不需要显式迁移


  • 谢谢@zhong hu,我们在集群上进行修复时面临许多问题。对于包含23个节点(15+4+4)的整个集群,增量修复需要非常长的时间,最终会失败,sstables计数达到27K(常规计数约300-400)和非常高的平均负载(达到50个正常值3-4),甚至在我们刚刚按照“迁移到增量修复”指南。此外,我们注意到,一旦修复失败,除非我们先运行“nodetool scrub”,然后运行“nodetool compact”@Pankaj,否则它将继续失败。正如您所提到的,您的集群中可能存在很多问题,我打赌缓慢的修复操作只是擦洗了它的表面。“nodetool scrub”和nodetool紧凑型“适用于您的情况,这可能是SSTables未及时压缩的迹象,您可以考虑更改压缩策略。不过我对你的集群不太了解,这只是我的两分钱。谢谢@zhong hu,我们面临很多问题来修复我们的集群。对于包含23个节点(15+4+4)的整个集群,增量修复需要非常长的时间,最终会失败,sstables计数达到27K(常规计数约300-400)和非常高的平均负载(达到50个正常值3-4),甚至在我们刚刚按照“迁移到增量修复”指南。此外,我们注意到,一旦修复失败,除非我们先运行“nodetool scrub”,然后运行“nodetool compact”@Pankaj,否则它将继续失败。正如您所提到的,您的集群中可能存在很多问题,我打赌缓慢的修复操作只是擦洗了它的表面。“nodetool scrub”和nodetool compact“适用于您的情况,这可能是SSTables未及时压缩的迹象,您可以考虑更改压缩策略。不过,我对您的集群了解不多,这只是我的两分钱。