关于Adaptive Compaction几点疑问

1.长事务是否会影响合并,也就是说自适应表上有长事务,而无法合并?
2.由于合并频率比较频繁,是否会影响闪回查询,因为合并会消除多版本?
3.自适应合并是否受undo_retention的影响?

1 个赞

长事务会影响合并
阻塞合并操作:长事务会导致冻结操作卡住,从而阻塞合并操作。
增加合并复杂度:长事务会增加数据变化,使合并操作更复杂,消耗更多 CPU 资源。
系统性能下降:长事务会增加锁竞争和 I/O 压力,导致系统性能下降,进一步增加 CPU 资源的消耗
闪回只受undo_retention的影响,就是合并的在频繁,多版本回收的时候也需要根据undo_retention 设置的时间来进行多版本数据的回收,undo_retention影响自适应合并的话那么就是多版本的保留时间

@论坛小助手

  1. 长事务会影响自适应合并。根据自适应合并的机制,它需要采集查询、写入等信息,并根据这些信息识别可能导致查询慢的场景,如果存在长事务,合并任务可能会被推迟,以避免对这些长事务造成影响。
  2. 合并确实有可能影响闪回查询。在 OceanBase 数据库中,合并会定期整合增量数据,提升读取性能的同时提供了一个天然的数据校验点。但由于合并会消除旧的多版本数据,如果 undo_retention 设置的时间较短,可能会导致闪回查询无法查询到期望的历史版本数据。
  3. 自适应合并会受 undo_retention 的影响。虽然自适应合并本身是根据用户查询和写入信息来动态调整合并任务的,但 undo_retention 控制了转储中保留的多版本数据范围,如果设置不当,会影响闪回查询功能。

详情请参考:

  1. 自适应合并
  2. 闪回查询
  3. undo_retention
  4. 存储架构概述

看来,自适应合并也并非可以随心所欲。