备战 OBCP|每日深挖一道易失分难题

三机房部署 OB 集群,执行跨机房分区迁移时,中途目标机房断网,分区迁移中断,此时分区原副本、迁移中临时副本的数据状态分别是什么?如何人工修复分区副本,避免数据多版本冲突?

1 个赞

数据状态分析

1. 原副本(源端 Leader)

  • 状态:完好且可服务
  • 原副本始终是活跃的 Leader,继续处理读写请求
  • Paxos 多数派仍然成立(三机房中目标机房断网,剩余两机房仍构成多数派)
  • 数据完整、一致,不受迁移中断影响

2. 迁移中的临时副本(目标端)

  • 状态:数据不完整,不可用
  • 处于 ADD_REPLICA_OP 阶段,正在从源端拷贝 SSTable 宏块和追赶 Clog(Redo Log)
  • 断网时数据拷贝中断,临时副本的数据停留在某个旧的 SCN 时间点
  • 尚未加入 Paxos 成员列表,不参与投票,不能提供服务