分区范围修复在 Cassandra 中如何工作?

How does partition range repair work in Cassandra?

  1. 分区范围修复 (-pr) 是否仅修复节点负责的主要令牌,还是修复节点保存数据的非主要令牌?
  2. 如果只有主要令牌,那么是否必须在所有节点上 运行 分区范围修复以便非主要令牌也得到修复?
  3. 如何找到节点负责的非主令牌? nodetool ring返回的token范围,是只显示主要token范围还是一个节点负责的主要和非主要token范围?

分区程序范围修复(--partitioner-range-pr)仅修复节点上的令牌范围,其中该节点是主要副本,这意味着它是令牌的主要所有者(参见 Manual repair in Cassandra).

由于此修复选项仅修复节点上的主要范围,因此它需要在所有 DC 的所有节点上 运行,否则并非所有令牌范围都将得到修复。

您可以使用 nodetool ring 找到令牌范围所有权。它没有列出节点是辅助副本的标记范围。

分区程序范围修复(也称为“主要范围修复”)旨在真正高效,因为它不会修复已在其他节点上修复的范围。

Jeremiah Jordan 在他的博客中对此进行了非常详细的解释 post Apache Cassandra Maintenance and Repair

Patrick McFadin 也解释了 how repairs work and the different types of repairs in this video extracted from the DS210 Cassandra Operations course at DataStax Academy。干杯!