读书人

Otter源代码解析(8)

发布时间: 2013-10-01 12:15:56 作者: rapoo

Otter源代码解析(八)

?结构比较清楚,再说就嗦了。

?

?

. Load过程相对有点复杂的,其结构如下:


Otter源代码解析(8)
?

?

值得说明的地方:

1)Load过程是并发执行的,但是受Weight的控制(并非全局的);

2)在Load过程中包含了打标记的过程(与Select过程是呼应的,即Load打的标记会被Select过程所识别,然后不会同步回去了,这一点官方文档有相关说明,不过我看了代码之后才最终理解,所以做下补充说明)

3)FileLoadAction没有展开来解析,比较容易理解,读者可自行阅读相关的逻辑。

1 楼 agapple 2013-09-18 Weight的控制,主要解决类事务的需求. 因为otter在Load的时候使用了pk hash的机制打散了原先的数据事务. 业务原本在A地,先插入了t1表,后插入t2表. 同步到目标库后,顺序如果没有保证,业务上在B地看到t2表有数据,立即去join t1表,发现无数据,就可能会出错.

针对这种case,引入weight来解决,otter在同步的时候定义了t1的优先级低于t2,就可以保证t2插入成功,一定可以join出t1记录. 解决类似主表+副表的业务设计

读书人网 >开源软件

热点推荐