哪些情况会导致日志流的分裂和合并?

哪些情况会导致日志流的分裂和合并?

14 个赞

OceanBase 数据库中,日志流的分裂和合并主要发生在以下几种情况:

‌负载均衡需求‌:当租户的属性发生变更、新增了机器资源,或者经过长时间使用后,Tablet 在各台机器上不再均衡时,系统会通过日志流的分裂和合并操作,并配合日志流副本的移动,使数据和服务在多个服务器之间达到新的均衡状态。

‌表的创建与删除‌:随着用户持续地创建或删除表,尤其是删除一批表后,原本聚集在某些机器上的 Tablet 可能减少,这时均衡层会定期生成均衡计划,将 Tablet 从 Tablet 较多的服务器迁移到 Tablet 较少的服务器上,从而触发日志流的分裂与合并。

‌系统扩容‌:当进行租户扩容后,分区会以 Tablet 为单位迁移到新加入的 Observer 节点中,日志流会从原来的 Observer 迁移到扩容后的 Observer 的 Unit 单元内,这个过程也涉及日志流的分裂。

‌数据均衡策略‌:在均衡层的管理下,当需要对 Tablet 进行重新分布时,会通过分裂出临时日志流并迁移 Tablet,再与目标服务器上的日志流合并来实现均衡。

‌手动或自动合并‌:当系统检测到合并效率低下或写入放大过大的情况时,可能会调整合并策略,例如通过设置 minor_freeze_times 来更频繁地触发合并,或者通过调整 merge_thread_count 来缓解写入放大问题。

7 个赞

最简单的就是调整primary zone的时候

4 个赞

学习下

4 个赞

能否详细解释下minor_freeze_times和merge_thread_count参数的使用

4 个赞
  1. primary_zone的改变 从z1;z2;z3 该变成z1,z2,z3或其他形式
  2. unit_num的改变, 已经分配给租户的resource pool的unit_num改变, 增加或者减少
  3. locality 副本属性的改变, 比如 3个变成 2个
  4. 负载均衡参数的影响enable_transfer . 会影响到 日志流的分裂和合并
  5. Observer的宕机 unit的迁移 ,应为副本的迁移或者重新生成新unit需要增加unit 。 zone的增加或者减少 也有日志流的增加或者减少

希望对您有用

7 个赞

同问,这个概念没有注意到过呢

4 个赞

这个回答的比较到位了,学习了。

2 个赞

详细。zone增减是不是也会出发呢?

2 个赞

总结的比较到位

3 个赞

BD

1 个赞

@论坛小助手

1 个赞

日志流的分裂和合并情况:

  • 分裂:为了实现数据的水平扩展和均衡,可能需要增加新的日志流来分散数据负载。
  • 合并:为了优化存储和提高查询效率,可能会将多个日志流合并成一个或几个日志流,减少管理复杂度。

minor_freeze_times 参数:

  • 用于触发 Major Freeze 的配置项。
  • 在 V4.x 版本中,此配置项已经被删除,因为 V4.x 版本从底层解决了大事务能力的支持,事务不再受冻结操作的影响。

merge_thread_count 参数:

  • 用于设置每日合并工作的线程数。
  • 通过调整线程数,可以控制合并任务的并发度,从而影响合并任务的执行速度和系统资源的占用。

检索到的文档如下:

  1. 集群架构
  2. V3.x 与 V4.x 配置项和系统变量变更
  3. merge_thread_count
1 个赞

期待

学习了/

写得很详细

混个积分!

学习了3

混个回复!

期待