请问canal-adapter在全量同步阶段是否锁库或者锁表?

tvz2xvvm  于 22天前  发布在  其他
关注(0)|答案(1)|浏览(23)

请问canal-adapter在全量同步阶段是否锁库或者锁表?

vshtjzan

vshtjzan1#

  1. 原生的全量同步逻辑实现,既不锁库也不锁表 就是普通的select语句查全表数据。如果数据量大于10000,则会通过线程池处理,线程数为核数。会按照单个任务获取10000条数据拆分。
    不过在数据量大的情况下,性能不好,一是存在深度分页问题,二是对于线程数的设置,并非cpu密集型任务,单纯用cpu核数感觉也缺乏考量
  2. 全量同步期间需要注意增量数据的处理,不然可能会丢失更新
  3. 我改造了源码,简单走了单线程的流式查询,也能满足大部分场景,且相对稳定,当然也存在流式查询的一些问题:比如更加需要重视增量数据的处理,长事务等
  4. 也可以考虑结合使用datax做离线的全量数据同步 + canal做增量数据同步,原理也是流式查询,不过做了任务拆分+并行化处理

相关问题