写点什么

Facebook 开源分布式日志存储系统 LogDevice

  • 2018-10-08
  • 本文字数:1096 字

    阅读完需:约 4 分钟

Facebook开源了他们的内部分布式日志存储项目LogDevice。它通过复制、持久日志存储和故障恢复实现写入高可用性。

Facebook 的大多数需要记录日志应用程序都需要写入高可用性、持久的日志存储以及在性能和延迟方面要求各不相同的工作负载。另一个非常重要的要求是能够承受硬件故障。Facebook 有一个叫作 Scribe 的旧项目侧重于将日志聚合到集中式存储中,但这种方案存在数据丢失的情况。Scribe 现在使用 LogDevice 作为日志存储后端。

Facebook 将 LogDevice 用在数据中心内部的流式处理管道、数据库索引更新的发布、机器学习管道、复制管道和持久任务队列(每秒摄取超过 1TB 的数据)中。尽管 Facebook 已经构建了很多用于管理 LogDevice 集群的开源工具,但还没有将它们开源出来,除了一些基本的工具集。 LDShell 工具可用于从命令行管理集群,并且可以使用 LDQuery 命令来查看集群统计信息。

LogDevice 使用“日志记录”抽象来划分单个日志事件,为每个记录分配一个称为日志序列号(LSN)的唯一 ID。LSN 由“Sequencer”组件基于时间点生成,而时间点保存在 ZooKeeper 中。LogDevice 只能以追加的模式写入记录,也就是说,一旦写入记录就无法修改。与大多数日志存储系统一样,LogDevice 会“修剪”记录,即基于时间或空间策略的日志轮换。它还可以按需进行日志修剪。除此之外,对日志的存储时间没有限制。

LogDevice 通过在不同的计算机节点上存储每个日志记录的多个副本来实现高可用性,尤其是写入高可用性。每条记录可以跨20-30 个存储节点复制。不过,如果某些具有某条日志副本的计算机速度很慢或不可用,那么该日志写入次数的增加会限制吞吐量。LogDevice 可以自动检测哪些节点已失效,并不再往这些节点写入新记录。它试图通过尽可能多的复制尽减少硬件故障的影响,并尽可能快地“重建”丢失的副本。在重建过程中,“可以以每秒5-10GB 的速率进行恢复”。LogDevice 底层存储基于RocksDB,它也是由Facebook 开源的一个键值存储系统。

LogDevice 团队还必须应对其他挑战,他们发现,LogDevice 的用户会执行回填(backfill),请求几个小时或几天内的旧数据。这些请求由使用 LogDevice 日志的下游服务发出,当这些服务从故障中恢复并重新处理日志时就会发生回填。LogDevice 通过在“节点集”之间分摊读取负载来应对这些读取高峰。

LogDevice 可以与 Apache BookKeeper Apache Kafka 等其他日志存储系统进行对比。其中与 Kafka 的主要区别似乎是LogDevice 将计算和存储进行了分离,主要是为了应对Facebook 规模的日志。LogDevice 是用C++ 开发的,并托管在 GitHub 上。

查看英文原文 Facebook Open Sources LogDevice - a Distributed Data Store for Log Storage

2018-10-08 10:232130
用户头像

发布了 731 篇内容, 共 469.1 次阅读, 收获喜欢 2007 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

华为云空间亮相网络安全周:创新技术保障数据与设备安全

最新动态

mcgs笔记 工具箱 元件库(公共图库)展示(上)

万里无云万里天

自动化 HMI mcgs

西部数据正式推出获PS5™官方授权的8TB超大容量SSD

极客天地

mcgs笔记 新建工程与模拟运行

万里无云万里天

自动化 HMI mcgs

AI最佳实践全栈式从0到1开发个人博客系统

TRAE

人工智能 程序员 AI 博客 博客开发

开发者空间实践指导:基于3大PaaS主流服务轻松实现文字转换语音

平平无奇爱好科技

mcgs笔记 设备窗口 添加父设备与子设备

万里无云万里天

自动化 HMI mcgs

华为云CodeArts API:API管理一体化平台 7月新特性上线啦!

平平无奇爱好科技

mcgs笔记 构件 查看帮助文档

万里无云万里天

自动化 HMI mcgs

mcgs笔记 工具箱 元件库(公共图库)展示(中)

万里无云万里天

自动化 HMI mcgs

mcgs笔记 构成工程的五个部分

万里无云万里天

自动化 HMI mcgs

mcgs笔记 设备窗口 查看子设备的参数配置说明

万里无云万里天

自动化 HMI mcgs

首批最高级!华为云ROMA Connect获信通院全栈企业级集成平台优秀级

平平无奇爱好科技

新特性系列 I 华为云全栈可观测平台(APM)8月上线新功能等你来解锁!

平平无奇爱好科技

Kafka+PostgreSql,构建一个总线服务

为自己带盐

postgresql kafka 总线服务

mcgs笔记 工具箱 元件库(四种风格)展示

万里无云万里天

自动化 HMI mcgs

华为云低代码AstroZero技巧教学1:表格的超链接赋能

平平无奇爱好科技

华为云低代码AstroZero技巧教学2:轮播组件的魅力 玩转视觉营销

平平无奇爱好科技

将美术馆装进手机,艺术融入生活。《Arrrt》入选华为应用市场“匠心奖”

最新动态

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路

华为云开发者联盟

数据库 数据仓库

案例 | 澳鹏自动驾驶标注方案入选虎嗅智库行业报告

澳鹏Appen

自动驾驶 数据标注 行业报告

mcgs笔记 工具箱 常用符号展示

万里无云万里天

自动化 HMI mcgs

mcgs笔记 工具箱 构件展示

万里无云万里天

自动化 HMI mcgs

“码”上中秋,共话精彩——豆包MarsCode 放“码”过来!

TRAE

人工智能 AI 征文活动

百度赵世奇:文心智能体平台跑通商业闭环,已有超2万智能体开始帮开发者赚钱

极客天地

还在粗放式管理需求,频繁返工?华为云六招破解研发困局!

平平无奇爱好科技

新特性系列 I 华为云软件开发生产线(CodeArts)8月上线新功能等你来解锁!

平平无奇爱好科技

说说停止线程池的执行流程?

伤感汤姆布利柏

【技术分享】Amazon EKS-不同的服务根据路径实现ALB的跳转

伊克罗德信息科技

Amazon amazoneks

Facebook开源分布式日志存储系统LogDevice_Meta_Hrishikesh Barua_InfoQ精选文章