Advertisement

Canal 实现了数据库事务的一致性模型

阅读量:

该系统中针对事务事件(Event)的环形缓存机制具体实现为类名称EventTransactionBuffer。

[](()1.1 类图

EventTransactionBuffer 的类图如下:

在这里插入图片描述

根据类图我们可以到其存储结构还是比较简单的。

缓冲区大小预设值设定为1024,在设计上要求必须是二进制数(即其要求必须是二进制数),这是因为这种数值特点能够显著提升数据处理效率(即由于二进制运算的特点)。

int类型的变量indexMask被定义为环形缓存区的下标掩码,在此过程中其取值等于缓存区大小减一的结果。序列与掩码相乘的结果能够迅速确定序列在环形缓存区中的具体下标位置。

CannalEntry.Entry[] entries环形缓冲区数据存储区域

AtomicLong putSequence记录当前使用的序列号;每当调用add方法新增一条数据时;该值递增一;可能超出缓存区域的实际容量。

当前缓存区已处理的序列编号为flushSequence,并且表明当前缓存区已处理的序列号小于或等于总序列号。其差值(putSequence - flushSeque

全部评论 (0)

还没有任何评论哟~