精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-08-29
darkjune 写道 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上, 比你们的字段同步确实粒度大了点。 是的,基于log-based的实现比较麻烦,所以支持的数据库很有限,我们也在考虑同时支持trigger的功能,这样就可以支持更多的数据库类型。 你们现在使用SymmetricDS进行数据库同步?可以分享一下你们的使用场景和经验?有用到它的文件同步的功能?还有你们的网络部署结构是什么样的?异地机房多节点部署? |
|
返回顶楼 | |
发表时间:2013-08-29
我们是一个产品型的应用,只管产品实现这块,具体实施方面不是我们在做, 但大概是这样:
每个机房可以部署一个node(看具体需要支持的数据量),一般可以支持到共1个主node,3-4个分node吧。 同步策略不是实时的,有定时任务做, 一般是分node先push自己的数据到主node, 然后分node再从主node pull数据来做同步。 |
|
返回顶楼 | |
发表时间:2013-08-29
darkjune 写道 我们是一个产品型的应用,只管产品实现这块,具体实施方面不是我们在做, 但大概是这样:
每个机房可以部署一个node(看具体需要支持的数据量),一般可以支持到共1个主node,3-4个分node吧。 同步策略不是实时的,有定时任务做, 一般是分node先push自己的数据到主node, 然后分node再从主node pull数据来做同步。 全球机房部署还是就国内部署?不关注数据的延迟? |
|
返回顶楼 | |
发表时间:2013-08-29
agapple 写道 darkjune 写道 我们是一个产品型的应用,只管产品实现这块,具体实施方面不是我们在做, 但大概是这样:
每个机房可以部署一个node(看具体需要支持的数据量),一般可以支持到共1个主node,3-4个分node吧。 同步策略不是实时的,有定时任务做, 一般是分node先push自己的数据到主node, 然后分node再从主node pull数据来做同步。 全球机房部署还是就国内部署?不关注数据的延迟? 产品部署取决于用户的数据中心物理分布, 就我目前的了解一般都是国家范围内,不排除跨国。 因为应用是管理数据中心的设备的,所以各个数据中心的数据推送并不太care,因为别的数据中心不会特别关心另外的数据中心的设备, 一天一次的同步是可以接受的。 |
|
返回顶楼 | |
发表时间:2013-08-29
一个管理机房设备的产品?这种和互联网的数据模式不太一样,我们追求实时,用户下单了,要尽快能够看到
|
|
返回顶楼 | |
发表时间:2013-08-29
agapple 写道 一个管理机房设备的产品?这种和互联网的数据模式不太一样,我们追求实时,用户下单了,要尽快能够看到 一个管理机房设备的产品?这种和互联网的数据模式不太一样,我们追求实时,用户下单了,要尽快能够看到 |
|
返回顶楼 | |
发表时间:2013-08-29
agapple 写道 agapple 写道 一个管理机房设备的产品?这种和互联网的数据模式不太一样,我们追求实时,用户下单了,要尽快能够看到 一个管理机房设备的产品?这种和互联网的数据模式不太一样,我们追求实时,用户下单了,要尽快能够看到 对,所以应用场景不一样, 你们实时要求比较高, 要求更高一点 |
|
返回顶楼 | |
发表时间:2013-08-29
和oracle的stream有什么区别呢?
|
|
返回顶楼 | |
发表时间:2013-08-29
czy84 写道 和oracle的stream有什么区别呢?
oracle stream/mysql replaction都是数据库自带的复制工具,他们的特点是简单可用。 但缺点就是不支持异构数据库,无法干预复制逻辑,无法自定义数据复制关系等等,因为需求总是多样的 |
|
返回顶楼 | |
发表时间:2013-09-01
如何保证你的保密数据备份在别人的服务器上面,不给服务器的主人给你盗取了?
|
|
返回顶楼 | |