LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > 开源资讯 >

LinkedIn开源低延时变化数据捕获系统Databus

时间:2013-02-27 21:38来源:CSDN 编辑:CSDN 点击:
LinkedIn于2月26日开源了其低延时变化数据捕获系统 Databus,该系统在低延时情况下仍然具备高有效性。能服务于LinkedIn生态系统数年之久,除上述特性以外当然还有其不可忽视的独到之处
LinkedIn于2月26日开源了其低延时变化数据捕获系统 Databus,该系统在低延时情况下仍然具备高有效性。能服务于LinkedIn生态系统数年之久,除上述特性以外当然还有其不可忽视的独到之处——无 限制的lookback能力及丰富的subscription功能。文章在最后公布了Databus源码及相关下载。

LinkedIn于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据 源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下 仍然具有高有效性;而其最大的特点莫过于无限制lookback能力及丰富的subscription功能。

以下为LinkedIn上Databus简述译文:

何为Databus

LinkedIn拥有一个针对数据储存和服务系统的多样化生态系统。首要的OLTP数据存储是针对于写和读操作开发。其它的专业系统则聚焦于复杂查询以及通过缓存对查询进行加速。举个例子:通过Search Index系统来服务搜索查询,这会需要系统不间断给主数据库数据做索引。

这将导致对可靠性的特殊需求,事务一致性需求将贯穿整个系统 —— 从主数据源中捕获变化数据并发送给派生数据系统。针对这个需求,LinkedIn建立了Databus,添为LinkedIn数据处理管道的重要组成部 分。Databus传输层实现了毫秒级终端到终端的数据传输,在具备无限制的lookback(还原)能力及丰富subscription(截取)的功能 同时,还保障了单服务器每秒数以万计的改变事件(change event)。

如上图所述,类似于Search Index及Read Replica这些作为Databus的Consumer(类节点)使用的将是Client Library(客户端库)。当对一个主OLTP数据库做写操作时,连接了这个数据库的Relay们将会把改变存入Relay中;Databus这些被嵌 入内存或者索引的Consumer将会把它从Relay或Bootstrap(引导程序)中取出,并且根据情况修改索引或者缓存,这就做到了根据源数据库 的状态实时的更新索引。

Databus工作原理简述

Databus重要特性如下:

  1. 数据源独立:Databus支持从多样的数据源中捕捉变化数据,包括Oracle及MySQL。Oracle转接器已经被开源,不久后也将会开源MySQL转接器。
  2. 可扩展和高有效性:在保证高有效性的同时,Databus可以扩展到上万个Consumer和事务型源数据库上。
  3. 事务有序的进行交付:Databus为源数据库保存了事务保障,并且根据源提交顺序分组的对改变事务进行交付。
  4. 低延时以及丰富的subscription功能:一旦数据源发生改变,Databus可以在几毫秒内将事务交付到Consumer。Consumer同样可以使用Databus服务器端的筛选对数据流的指定部分进行检索。
  5. 无限制的lookback:Databus中最革新的部分就是Consumer可以无限制的lookback。Consumer对完整数 据做拷贝时(比如说一个新的搜索索引)不会给主OLTP数据库带来额外的负载,这一点在Consumer性能大幅度下降时同样会有所帮助。

如上图所示,Databus系统由Relay、Bootstrap Service和Client Library组成。Relay从源数据库中捕获改变内容,并将事件储存在一个高性能的日志存储中。Bootstrap Service会通过Relay改变流申请为源数据库储存一个流动的快照。应用程序使用Databus Client Library从Relay或者Bootstrap中抽取改变流,并且通过Consumer(实现了库内定义的回调API)对改变事件进行处理。

快速的从Databus Relay中转移Consumer需要的检索事件。如果一个Consumer的性能下降到它所请求的事件已经不再保存在Relay的日志里,这个 Consumer需要交付一个快照 —— 保存了该Consumer上一次处理完成至今所发生的改变合集;如果一个新的(没有之前版本数据集)Consumer建立,这样新加入的Consumer 可以快速的保持一致。

Databus相关下载

Databus能在LinkedIn服役多年其独到之处无需质疑,现LinkedIn将其开源并广邀感兴趣的开发人员参与。

转载请保留固定链接: https://linuxeye.com/news/1310.html

------分隔线----------------------------
标签:LinkedInDatabus
栏目列表
推荐内容