总工程师透露:LinkedIn大数据背景如何运作

作者:微信群 微信号: 热度:403 2019-09-23

总工程师透露:LinkedIn大数据背景如何运作

Log: every software engineer should understand the unified abstraction of real-time data

六年前,我在一个激动人心的时刻加入了LinkedIn。从那时起,我们就突破了单一的集中式数据库的局限性,开始向一个特殊的分布式系统套件过渡。这是一件令人兴奋的事情:我们构建、部署并仍然运行分布式图形数据库、分布式搜索后端、Hadoop安装以及第一代和第二代关键数据存储。

我们能从这些中学到的最有用的东西是,在我们建造的许多东西的核心,有一个简单的想法:期刊。日志有时被称为预写或提交日志或事务日志,它几乎存在于计算机生成时,也是许多分布式数据系统和实时应用体系结构的核心。

没有日志记录,您就无法完全理解数据库、NoSQL存储、键值存储、复制、paxos、Hadoop、版本控制以及几乎所有的软件系统;然而,大多数软件工程师并不熟悉它们。我愿意改变这种情况。在这篇博文中,我将向您介绍您必须了解的关于日志的所有内容,包括日志是什么、如何在数据集成、实时处理和系统构建中使用日志等等。

第一部分:原木是什么?

日志记录是一种简单的存储抽象,不再简单。它是一系列记录,只能添加,按时间精确排序。日志看起来像这样:

我们可以将记录添加到日志的末尾,并从左到右读取它。为每个记录分配一个具有特定顺序的唯一日志记录号。

日志记录的顺序由时间决定,因为左侧的日志记录早于右侧的日志记录。日志记录号可以被认为是该日志记录的时间戳。按时间顺序说这种排序有点多余,但与任何特定的物理时钟相比,时间属性是一个非常方便的属性。当我们运行多个分布式系统时,此属性非常重要。

出于本讨论的目的,日志记录的内容和格式不是很重要。还要提醒我们,在存储空间完全耗尽的情况下,我们无法再将记录添加到日志中。我们稍后会提到这个问题。

日志与文件或数据表没有完全不同。文件由一系列字节组成,表是一系列记录,日志实际上是按时间顺序存储记录的数据表或文件。

最新文章

我的位置:>首页 > 微信文章 > 互联网