`
鳄鱼旭
  • 浏览: 74740 次
文章分类
社区版块
存档分类
最新评论

Otter源代码解析(六)

 
阅读更多

全部文档索引:

Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894

Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518

Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519

Otter源代码解析(四): http://eyuxu.iteye.com/blog/1942521

Otter源代码解析(五): http://eyuxu.iteye.com/blog/1942522

Otter源代码解析(六): http://eyuxu.iteye.com/blog/1942549

Otter源代码解析(七): http://eyuxu.iteye.com/blog/1942578

Otter源代码解析(八): http://eyuxu.iteye.com/blog/1942780

Otter源代码解析(九): http://eyuxu.iteye.com/blog/1942786

 

下面进入核心的部分:SETL中的Select过程:本身描述能力有限,自认为单纯看我写的文档就能够了解地比较深入,不太现实。所以最好是代码阅读和文档阅读结合的方式来理解Otter:

 



 

 

关于HA:采用多个节点竞争的模式来实现,一旦一个节点宕机,其他的节点就会获取竞争条件,这个事件叫做MainstemEvent

 

.每个SETL过程的设计基本上都是由xxxTask + OtterXXXFactroy + OtterXXX的设计方式,但是细节上差别比较大。

 

. Select过程是需要串行的(需要保证顺序性),但是为了尽可能提高效率,将Get和ACK(Canal的滑动窗口)分在两个线程里面去做,依据的假定就是绝大多数数据是不需要回滚的,但是一旦回滚了,代价就比较大(Otter的官方文档有相关的说明)。这个设计有个问题就是发送的数据是可能重复的,Otter对同步数据表的要求是必须要要有主键,我认为和这个问题有关系(否则Load过程难于知道数据是否是重复的),但是效率能够得到大幅度的提高。

  • 大小: 15.5 KB
  • 大小: 77.1 KB
分享到:
评论
2 楼 鳄鱼旭 2013-09-18  
原来如此,多谢解释!
1 楼 agapple 2013-09-18  
必须要有主键,和公司内部的数据库约束有关(建表必须要有一个唯一约束或者主键),基于主键可以使用pk hash + table的算法,加速同步效率.  基于这个前提设计了一整套的load过程,你会看到有WeightController/WeightBarrier做类事务的顺序处理,DbLoadMeger做pk数据合并等。

如果支持无主键同步,可能会出现目标库出现一模一样的记录,这在pk hash那套算法下完全没辙,需要完全退化到串行执行的模式下。

相关推荐

    QT开源网页浏览器otter-browser的源代码

    Otter Browser 水獭浏览器 水獭浏览器 - 模仿opera12界面, 基于qt5的webkit浏览器. 等于个人制作山寨版Safari, 支持二代半引擎, 苹果WebEngine/谷歌Blink. 作者: 波兰 Emdek 恩德克 代码可用,本人亲测,qt5.5+vs...

    基于QT开发的浏览器源代码(otter-browser).zip

    基于QT开发的浏览器源代码(otter-browser),可编译运行。

    otter 资料PDF(深入理解otter (偏向技术层面)、otter使用介绍 (偏向使用层面) )

    otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。 深入理解otter (偏向技术层面).pdf otter使用介绍 (偏向使用层面) .pdf

    otter4使用介绍

    otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍otter4使用介绍

    深入浅出Otter与Canal.pdf

    深入浅出Otter与Canal.pdf深入浅出Otter与Canal.pdf深入浅出Otter与Canal.pdf深入浅出Otter与Canal.pdf

    Otter配置教程,otter从入门配置到高级配置

    Otter配置教程,otter从入门配置到高级配置,适合入门学习以及配置参考

    深入理解otter.pptx

    深入理解otter

    alibaba-otter

    项目背景 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出...定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统

    otter部署文档说明

    otter部署流程,介绍详细,内容充实,符合跨区域数据库数据同步

    数据同步利器--otter搭建使用说明

    导历史表还需要程序实现吗? 还在用mysql的主从复制吗? Otter都能为你解决。

    otter源码包

    otter源码包,里面有otter的使用案例,透过otter源码能更好的理解和otter的用法

    Otter打包文件

    Otter打包文件好的文件4.2.14.Otter打包文件好的文件4.2.14.Otter打包文件好的文件4.2.14.Otter打包文件好的文件4.2.14.Otter打包文件好的文件4.2.14.

    otter4使用介绍.pdf

    阿里巴巴分布式数据库同步系统(解决中美异地机房) otter4使用介绍 mysql/Oracle跨机房同步数据

    otter-使用、维护说明.doc

    otter作为mysql日志级同步工具,维护简单,功能强大,性能优异

    深入理解otter.pdf

    深入理解otter.pdf官方文档。

    阿里巴巴分布式数据库同步系统 otter.zip

    同步数据量6亿文件同步1.5TB(2000w张图片)涉及200 个数据库实例之间的同步80 台机器的集群规模 项目介绍名称:otter ['ɒtə(r)]译意: 水獭,数据搬运工语言: 纯java开发定位: 基于数据库增量日志解析,准实时...

    深入理解otter

    Otter的设计文档,里面详细介绍了otter的设计理念,解决跨国IDC数据同步问题。

    otter打包及配置开发文档

    otter架构&设计 如何解决"差"网络 如何避免双向回环 如何处理数据一致性 如何高效同步数据 如何高效同步文件 如何支持系统HA 如何处理特殊业务同步 如何处理机房容灾

Global site tag (gtag.js) - Google Analytics