开发者社区> 问答> 正文

Otter双向回环控制实现机制疑问

想咨询下,otter配置双向同步,在MasterA批量修改N条数据后,同步到MasterB的binlog数据量为何会扩增几十倍以上不止?查看binlog文件,发现多出很多如下update retl_mark的语句

UPDATE retl.retl_mark WHERE @1=249 /* LONGINT meta=0 nullable=0 is_null=0 / @2=0 / INT meta=0 nullable=1 is_null=0 / @3=NULL / INT meta=384 nullable=1 is_null=1 / SET @1=249 / LONGINT meta=0 nullable=0 is_null=0 / @2=11 / INT meta=0 nullable=1 is_null=0 / @3=NULL / INT meta=384 nullable=1 is_null=1 */ at 305919305 161209 14:21:54 server id 3308 end_log_pos 305919361 CRC32 0xf8fe8149 Table_map: retl.retl_mark mapped to number 70896 at 305919361 161209 14:21:54 server id 3308 end_log_pos 305919423 CRC32 0xc1e11543 Update_rows: table id 70896 flags: STMT_END_F

BINLOG ' gk1KWBPsDAAAOAAAAIH1OxIAAPAUAQAAAAEABHJldGwACXJldGxfbWFyawADCAMPAoABBkmB/vg= gk1KWB/sDAAAPgAAAL/1OxIAAPAUAQAAAAEAAgAD///8+QAAAAAAAAALAAAA/PkAAAAAAAAAAAAA AEMV4cE= '/!/; UPDATE retl.retl_mark WHERE @1=249 /* LONGINT meta=0 nullable=0 is_null=0 / @2=11 / INT meta=0 nullable=1 is_null=0 / @3=NULL / INT meta=384 nullable=1 is_null=1 / SET @1=249 / LONGINT meta=0 nullable=0 is_null=0 / @2=0 / INT meta=0 nullable=1 is_null=0 / @3=NULL / INT meta=384 nullable=1 is_null=1 */ at 305919423 161209 14:21:54 server id 3308 end_log_pos 305919454 CRC32 0xd02a4bf7 Xid = 4651024813 按照双向回环控制逻辑的理解,大于300是在事务头和尾中插入otter同步标识,在binlog中两条update retl_mark中间会嵌入业务表操作语句,但目前发现的是有很多<300的update retl_mark,如果是用于内部系统的话,为何会多出这么多?求解。

原提问者GitHub用户 EternalSpring

展开
收起
大圣东游 2023-06-21 16:35:42 149 0
1 条回答
写回答
取消 提交回答
  • otter同步目标是走了batch,每批数据前后都会有retl_mark表的变更操作,变更操作的量取决于原始数据量,最多2倍的sql量

    原回答者GitHub用户agapple

    2023-06-21 17:42:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载