关于“日志流”与“负载均衡”的内部原理探讨

  • 类型: 内核原理/架构深究
  • 话题标题: 【原理向】当OceanBase集群进行Rebalance时,对正在运行的热点事务会产生怎样的影响?
  • 话题内容:
    一直对OceanBase的负载均衡机制(日志流的分裂与合并)很感兴趣。我们知道当集群节点扩缩容或负载不均时,系统会自动调度Unit或迁移日志流。
    假设某个日志流正在处理高频的写入事务,此时调度器决定将该日志流的一部分分区迁移到另一台节点。
    请问:
    1. 这个迁移动作对当前正在执行但未提交的事务是透明的吗?会阻塞事务的提交吗?
    2. 如果迁移过程中节点宕机,恢复流程会比平常更复杂吗?在应用层通常需要做什么样的重试机制来应对这种微小的抖动?
5 个赞

迁移我觉得应该是无感的吧

3 个赞

学习一下

2 个赞
  • 对事务的透明性:分区迁移对正在执行且未提交的事务是透明的。OceanBase 采用两阶段迁移机制:
  1. 先在目标节点创建分区的只读副本,同步源节点的增量日志。
  2. 待数据同步完成后,进行一次原子切换,将分区的读写权限转移到目标节点。
  • 对事务提交的影响:迁移过程不会阻塞事务提交。
  • 若事务在切换前提交,会在源节点完成。
  • 若事务在切换后提交,会被路由到目标节点完成。
  • 整个过程中,事务的 ACID 特性得到保证,不会出现数据丢失或不一致。
2 个赞

有道理

1 个赞