既然ticdc可以将tidb的事件同步到下游,那是否有办法将tikv中的事务事件直接同步到下游tikv?
tikv的rawcdc只能同步非事务操作,事务操作的同步是有难度暂时没开发还是不可行呢?
既然ticdc可以将tidb的事件同步到下游,那是否有办法将tikv中的事务事件直接同步到下游tikv?
tikv的rawcdc只能同步非事务操作,事务操作的同步是有难度暂时没开发还是不可行呢?
事务是通过 tidb 实现的,tikv 是完成持久化的结果。
ticdc 是通过 capture Data change Event 实现数据变化过程的记录,和事务没直接关系。
记录是结果,数据变化的结果,比如,A行,B 列, 100 → 10 …
可以看看事务在各个组件中进行的操作。
但是这个分布式事务是通过tidb server来实现的,单纯的tikv节点无法实现的。
我并没有部署tidb,tikv也提供了事务写的接口,我想同步的是这个。
感觉你的需求是 你是不想同步row,而想同步 sql(或者单sql 对应的row),类似mysql cdc 的 Statement 模式。 tikv 作为最后的存储,单位是行级别的,查看文档也没有事务ID相关描述,所以比较难拿到你说的。
另外你拿到以后再操作,个人愚见是危险的,tidb cdc 出来的数据是有序的,你拿到单个事务的数据再去处理可能导致你的执行过程与主表不一致,最终导致数据不一致。
但是,tikv是集群节点形式,表中数据也是分布式存放的在tikv集群节点中,单纯从tikv节点,很难获得一个分布式事务的一致性吧?
sorry才回复
我想写一个功能,将ticdc中拉取到的kv event直接写到tikv中。
但是没能找到关于tikv的cdc 消息怎么使用的文档,我能理解也许这部分并不面向普通用户,但是否有一些面向开发者的说明呢?
rawkv 不推荐使用。
主要现在这个产品支持不在我们的主线上。
不是rawKV 是tikv的事务接口。
我只需要kv数据库
没有直接说明吧,有时间的话可以直接看源码
官方blog 有一些浅显的介绍