Otter源代码解析(八)
?结构比较清楚,再说就嗦了。
?
?
. Load过程相对有点复杂的,其结构如下:

?
?
值得说明的地方:
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记录. 解决类似主表+副表的业务设计