Cassandra 在卡桑德拉有哪些选项可以加速全面修复?
我有一个卡桑德拉数据中心,我想对它进行全面修复。数据中心用于分析/批处理,我愿意牺牲延迟来加速全面修复(Cassandra 在卡桑德拉有哪些选项可以加速全面修复?,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,我有一个卡桑德拉数据中心,我想对它进行全面修复。数据中心用于分析/批处理,我愿意牺牲延迟来加速全面修复(nodetool repair)。对数据中心的写入是适度的 我有哪些选项可以加快全面修复的速度?一些想法: 增加流吞吐量 我想我可以禁用自动比较并暂时降低压缩吞吐量。但我不确定我是否想那样做 其他信息: 我正在运行SSD,但没有为此花费任何时间调整cassandra.yaml 默认情况下,完全修复按顺序运行。节点数据集的状态和差异存储在二叉树中。重建这些是这里的主要因素。根据“每次执行修
nodetool repair
)。对数据中心的写入是适度的
我有哪些选项可以加快全面修复的速度?一些想法:
- 增加流吞吐量
- 我想我可以禁用自动比较并暂时降低压缩吞吐量。但我不确定我是否想那样做
- 我正在运行SSD,但没有为此花费任何时间调整
cassandra.yaml
nodetool repair -par, or --parallel, means carry out a parallel repair.
据
与顺序修复(如上所述)不同,并行修复同时为所有节点构造Merkle表。因此,不需要(或生成)快照。使用并行修复可以快速完成修复,或者当您的运营停机时间允许在修复过程中完全消耗资源时,也可以使用并行修复
2)子范围修复
nodetool接受开始和结束令牌参数,如下所示
nodetool repair -st (start token) -et (end token) $keyspace $columnfamily
为了简单起见,请查看此python脚本,它为您计算令牌并执行范围修复:
让我指出两个备选方案:
A) Jeff Jirsa指出了增量维修
从Cassandra 2.1开始提供这些功能。在使用nodetool之前,您需要:
nodetool repair -inc, or --incremental means do an incremental repair.
B) OpsCenter维修服务
对于我公司的两个集群,我们使用作为服务执行和管理小范围修复的。运行修复的最快方法不是使用VNode,而是使用增量修复。您可以进行的所有其他调整都无法接近您将从这两个选项中看到的速度改进。+1。您可以运行8个令牌,但您必须自己管理它们。这在vnode的好处方面提供了一个不错的平衡,但操作上的麻烦要小得多。