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

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

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重要特性如下:

数据源独立:Databus支持从多样的数据源中捕捉变化数据,包括Oracle及MySQL。Oracle转接器已经被开源,不久后也将会开源MySQL转接器。

可扩展和高有效性:在保证高有效性的同时,Databus可以扩展到上万个Consumer和事务型源数据库上。

事务有序的进行交付:Databus为源数据库保存了事务保障,并且根据源提交顺序分组的对改变事务进行交付。

低延时以及丰富的subscription功能:一旦数据源发生改变,Databus可以在几毫秒内将事务交付到Consumer。Consumer同样可以使用Databus服务器端的筛选对数据流的指定部分进行检索。

无限制的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可以快速的保持一致。

责任编辑:王程程 来源: LinkedIn
相关推荐

2013-09-23 09:24:33

2017-02-06 14:00:51

iOSLinkedIn开源UI测试工具

2020-11-16 12:40:55

Java开发机器学习

2016-01-20 14:11:59

戴尔云计算

2021-04-27 15:47:12

人工智能语音识别Transformer

2012-02-23 14:45:45

Linkedin运作原理

2016-04-18 10:45:22

Dr. ElephanHadoop性能监控

2018-08-08 15:22:34

UCloudAI人工智能

2023-10-19 14:55:22

火山引擎拥塞控制算法

2022-10-24 09:12:46

延迟网络架构

2021-07-05 12:36:22

低代码编程语言开发平台

2016-03-16 10:56:12

数据营销数据分析LinkedIn

2022-03-23 15:19:00

低代码开源阿里巴巴

2024-03-11 16:13:26

C#编程开发

2018-09-14 14:48:01

2014-06-05 10:38:39

LinkedIn数据架构

2015-09-23 14:14:47

LinkedIn架构解析

2023-04-10 07:49:43

云渲染平台RTC

2013-06-21 09:56:26

点赞
收藏

51CTO技术栈公众号