首批通过分布式安全可靠测评,为关键业务系统打造
Clog 滑动窗口超时的原因及判断
更新时间:2026-06-12 04:01
Clog 滑动窗口超时一般会伴随着切主,业务侧有感知,事务被杀回滚。下面介绍两种常见的导致 Clog 滑动窗口超时的情况。
大事务造成的事务回调慢造成的切主,这个可以看日志是否有回调慢的情况。
例如如下日志,可以看到回调的耗时
on_success_duration,这个单位是 us,下面给的日志消耗还可以,但如果耗时 10 多秒的情况下就要注意了,因为这已经超 Clog 默认滑动超时时间了(由隐藏参数_ob_clog_timeout_force_switch_leader控制)。一般这种问题就需要应用侧优化事务了,比如把大事务进行拆分。[2024-04-20 05:02:55.251132] WARN [CLOG] submit_log_succ_cb (ob_log_task.cpp:263) [28958][YBXXXXXXXXXX-XXXXXXXXXXXXXXXX] [lt=59998] transaction on success costs(on_success_duration=60036, submit_log_.get_header()={magic:17746, version:1, type:201, partition_key:{tid:1106108697595120, partition_id:0, part_cnt:0}, log_id:354656257, data_len:1572, generation_timestamp:1713560574868554, epoch_id:1713560462335082, proposal_id:{time_to_usec:1713560462335082, server:"10.130.172.15:2882"}, submit_timestamp:1713560574868539, data_checksum:2283518293, active_memstore_version:"2246-0-0", header_checksum:618611133})Clog 写盘慢导致的切主.
从下面日志可以看出 Clog 写盘耗时 2S,这个时候可以使用 tsar 里 Clog 盘的 await 来看看当时的 IO 耗时。
[2024-04-20 04:55:14.990901] WARN [CLOG] finish_timer (ob_log_timer_utility.h:37) [30247][Y0-0000000000000000] [lt=230024] cost too much time(file="clog/ob_log_writer.cpp", line=375, time=2030265)
适用版本
OceanBase 数据库 V1.x、V2.x、V3.x 版本