论坛首页 Java企业应用论坛

阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)

浏览 26701 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-08-27  
andye 写道
请问Otter与你们的Datax有多大区别?Datax不也做同步的吗?


定位不同,datax主要是解决全量同步,通过select语句或者dump指令提取数据,然后同步到目标,数据仓库典型用法
canal&otter,主要是解决准实时同步,通过解析数据库日志,然后同步到目标,网站前台的典型用法
0 请登录后投票
   发表时间:2013-08-27  
ray_linn 写道
这个你有胆子用吗???


使用开源产品最怕的是反馈问题无人跟进,版本不发展.

如果你有兴趣,可以进开源沟通群了解下其他使用人员的想法,目前群人数已超过200+.
0 请登录后投票
   发表时间:2013-08-27  
andye 写道
请问Otter与你们的Datax有多大区别?Datax不也做同步的吗?


datax做离线同步.
0 请登录后投票
   发表时间:2013-08-27  
otter在数据量更新频繁时会不会吃掉所有带宽,对普通用户来讲。
0 请登录后投票
   发表时间:2013-08-27   最后修改:2013-08-27
whzhaha 写道
otter在数据量更新频繁时会不会吃掉所有带宽,对普通用户来讲。


有这个可能,为了提升传输效率,会加大并发数,建立更多的tcp链接. 

当然你也可以限制并发数,限制传输速度,不过这个限制只针对一个同步任务有效,非全局控制,多个同步任务之间的总流量的流控目前无法做。
0 请登录后投票
   发表时间:2013-08-27  
agapple 写道
whzhaha 写道
otter在数据量更新频繁时会不会吃掉所有带宽,对普通用户来讲。


有这个可能,为了提升传输效率,会加大并发数,建立更多的tcp链接. 

当然你也可以限制并发数,限制传输速度,不过这个限制只针对一个同步任务有效,非全局控制,多个同步任务之间的总流量的流控目前无法做。

是的,我现在也在写些数据交换组件,网络这块一直是个双韧剑,你网络处理很好,线程用的很好有可能也是灾难,耗尽所有资源对优化来说也是灾难,otter是否可以在双网双线层面去实施。
0 请登录后投票
   发表时间:2013-08-27   最后修改:2013-08-27
whzhaha 写道
agapple 写道
whzhaha 写道
otter在数据量更新频繁时会不会吃掉所有带宽,对普通用户来讲。


有这个可能,为了提升传输效率,会加大并发数,建立更多的tcp链接. 

当然你也可以限制并发数,限制传输速度,不过这个限制只针对一个同步任务有效,非全局控制,多个同步任务之间的总流量的流控目前无法做。

是的,我现在也在写些数据交换组件,网络这块一直是个双韧剑,你网络处理很好,线程用的很好有可能也是灾难,耗尽所有资源对优化来说也是灾难,otter是否可以在双网双线层面去实施。


支持几种网络结构.

1. 单机双网卡. 通过绑定ip到网卡,通讯的时候指定ip进行访问
2. 单机多网络:专线 or 公网.  通讯的时候可以选择是否使用公网传输(需要有公网IP,这ip资源是1对1机器的,ip资源消耗会比较大)
0 请登录后投票
   发表时间:2013-08-28  
这个跟国外的SymmetricDS比, 侧重点在哪里? 功能都差不多
0 请登录后投票
   发表时间:2013-08-28   最后修改:2013-08-28
darkjune 写道
这个跟国外的SymmetricDS比, 侧重点在哪里? 功能都差不多


比较识货,两者功能是差不多。

说一下和它的渊源,otter的第三个版本是基于SymmetricDS 2.x版本发展出来,正是因为有了这层关系,两者才有一些相似。

这次开源的为otter的第四个版本,从2011年开始开发,和SymmetricDS几个不同点:
1. 数据capture方式:otter4目前支持log-based,otter3和SymmetricDS一样,是基于trigger.
2. 双向同步冲突处理:otter4目前已经有比较成熟的方案, 而从SymmetricDS 3.x的文档中看,还处于planing中
3. 调度模型:otter4相比于SymmetricDS,在数据传输的模型上,引入了并行化调度,提升同步tps. 而在SymmetricDS 3.x文档中暂没看到相关的描述,基本还是串行的处理,只不过多了push的功能,这点是otter4没有的

基于log-based的方案,对于数据库的影响相对较少,同时可精确提取具体变更的字段,做到按需同步,而SymmetricDS基于trigger的方式,只能提取到变更的pk,每次同步时基于pk反查源库提取到行记录。从性能上来说,按字段同步传输量和数据库载入上都有很大的优势,从数据冲突上来说,冲突粒度更小了,有利于冲突处理方案的执行。

可以说下,otter3和otter4的性能对比,基本上是一个数量级上的提升,otter3的基于trigger,然后根据pk反查的,处理tps基本只在500~1000tps,而基于log-based,基于字段同步的可以达到5000~10000tps.

SymmetricDS有一个比较大的优势就是支持的数据库的比较多,这也是基于log-based所无法超越的,因为完成一个log-based不是那么简单的,代价很高,也就是最近1,2年才陆续有mysql的log-based出现,而oracle的log-based基本上的价格就是一个oracle的价格。
2 请登录后投票
   发表时间:2013-08-29  
agapple 写道
darkjune 写道
这个跟国外的SymmetricDS比, 侧重点在哪里? 功能都差不多


比较识货,两者功能是差不多。

说一下和它的渊源,otter的第三个版本是基于SymmetricDS 2.x版本发展出来,正是因为有了这层关系,两者才有一些相似。

这次开源的为otter的第四个版本,从2011年开始开发,和SymmetricDS几个不同点:
1. 数据capture方式:otter4目前支持log-based,otter3和SymmetricDS一样,是基于trigger.
2. 双向同步冲突处理:otter4目前已经有比较成熟的方案, 而从SymmetricDS 3.x的文档中看,还处于planing中
3. 调度模型:otter4相比于SymmetricDS,在数据传输的模型上,引入了并行化调度,提升同步tps. 而在SymmetricDS 3.x文档中暂没看到相关的描述,基本还是串行的处理,只不过多了push的功能,这点是otter4没有的

基于log-based的方案,对于数据库的影响相对较少,同时可精确提取具体变更的字段,做到按需同步,而SymmetricDS基于trigger的方式,只能提取到变更的pk,每次同步时基于pk反查源库提取到行记录。从性能上来说,按字段同步传输量和数据库载入上都有很大的优势,从数据冲突上来说,冲突粒度更小了,有利于冲突处理方案的执行。

可以说下,otter3和otter4的性能对比,基本上是一个数量级上的提升,otter3的基于trigger,然后根据pk反查的,处理tps基本只在500~1000tps,而基于log-based,基于字段同步的可以达到5000~10000tps.

SymmetricDS有一个比较大的优势就是支持的数据库的比较多,这也是基于log-based所无法超越的,因为完成一个log-based不是那么简单的,代价很高,也就是最近1,2年才陆续有mysql的log-based出现,而oracle的log-based基本上的价格就是一个oracle的价格。

基于bin log这种形式,那还需要自己实现分析各种数据库二进制log的代码?
这个似乎比较麻烦,尤其是异构数据库之间的处理,因为你提到双向同步在otter4是可以的,那么你们目前应该也是只支持公司常用的1,2种数据库专门对bin log的数据进行抽取吧。
就我了解,SymmetricDS 的trigger提取到的不只是pk,而是吧所有变动的数据都插入了他的sym_data及对应的sym_outgoing_batch表里,是一个csv格式的, 同步时全发到对方node上, 比你们的字段同步确实粒度大了点。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics