我看Flink CDC,在做快照的整个过程都会锁表呢?

我看Flink CDC debezium官网介绍说,在做快照时,只锁一会表,但是为什么flinkcdc2.3同步sql server库时,在做快照的整个过程都会锁表呢。是机制不一样吗?

展开
收起
真的很搞笑 2023-10-23 15:06:47 231 分享 版权
1 条回答
写回答
取消 提交回答
  • Debezium和Flink CDC在处理快照时的机制确实有所不同。

    Debezium在创建快照时会锁定表,以防止在创建快照期间有其他事务修改表。这是通过在创建快照之前提交一个预写事务来实现的,该事务会锁定表并插入一个特殊的快照标记。然后,Debezium会在快照标记上等待,直到所有其他事务都完成并提交。最后,Debezium会提交自己的事务,解锁表,并继续处理其他事务。

    相比之下,Flink CDC在创建快照时并不会锁定表。相反,它会读取所有的binlog事件,并在内存中构建一张完整的表快照。然后,它会丢弃所有的后续binlog事件,直到下一次快照被创建。这种方法的优点是不会阻塞其他事务,但是它需要更多的内存来存储快照,并且在创建快照时需要处理更多的binlog事件。

    所以,虽然两者都可以创建快照,但是它们的实现方式和性能特性是不同的。

    2023-10-24 09:53:11
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理