写点什么

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:231877
用户头像

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

关注

评论 1 条评论

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

环路检测在风控领域的应用实践丨 Fabarta 技术专栏

Fabarta

大数据 算法 图分析 智能风控 风控算法

GaussDB(DWS)函数不同写法引发的结果差异

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

MES系统可解决方案

万界星空科技

MES系统

目前国内市场知名的可视化工具(2D/3D)

2D3D前端可视化开发

可视化 数据可视化 三维可视化 可视化工具 组态可视化

软件研发的道德情操

阿里技术

研发 软件研发

大模型时代下的我们,破茧重生探索新开发范式!|WAVE SUMMIT 开源论坛

飞桨PaddlePaddle

人工智能 百度 开发者 百度飞桨 WAVE SUMMIT

直播|深入解析 StarRocks 存算分离--云原生湖仓 Meetup#2

StarRocks

数据库 云原生 存算分离 国产数据库 湖仓一体

支付宝小程序云云测产品最佳实践

TRaaS

支付宝小程序 支付宝 IoT

传统企业的智能化IPD(产品集成开发)转型

禅道项目管理

情景规划与财务建模2.0,如何促进企业全面预算管理的实施

智达方通

智达方通 全面预算管理 财务建模 情景规划

关于MYSQL引擎在物理层面存储那些事

谐云

基于大模型的数据血缘异常归因分析

奇点云

元数据 黑客马拉松 奇点云 对象体系

Apache Paimon 流式数据湖 V 0.4 与后续展望

Apache Flink

大数据 实时计算

与传统IT开发相比,低代码开发具备哪些优势?

互联网工科生

低代码 应用开发 私有化部署 可视化引擎 JNPF

为什么我们会对中国软件行业如此悲观?

ToB行业头条

Pixologic ZBrush 2023 for Mac(三维数字雕刻软件)v2023.2.2中文版

mac

苹果mac Windows软件 Pixologic ZBrush 2023Z 数字雕刻软件

用于共享大文件的4种大文件传输工具和软件

镭速

大文件传输软件

AirServer 7 for Mac(Mac专用投屏工具) v7.2.6激活版

mac

AirServer 投屏软件 苹果mac Windows软件

涛思数据联合长虹佳华、阿里云 Marketplace 正式发布 TDengine Cloud

TDengine

tdengine 阿里云 时序数据库

【您的意见很重要】天翼云文档“找茬”活动

天翼云开发者社区

云计算

一种基于Nginx的热点数据调度处理方法

天翼云开发者社区

大数据

基于卷积神经网络的MAE自监督方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

基于Java开发的拿来即用的EHR系统

金陵老街

Java Vue 低代码

文心一言 VS 讯飞星火 VS chatgpt (74)-- 算法导论7.2 2题

福大大架构师每日一题

福大大架构师每日一题

探索未知,即刻搭建AI原生应用!WAVE SUMMIT Workshop等你来参加

飞桨PaddlePaddle

人工智能 百度飞桨 百度AI WAVE SUMMIT

如何选择适合自己的文件传输工具

镭速

文件传输 文件传输工具

SpringBoot+Vue3打造企业级一体化PaaS系统

高端章鱼哥

Vue PaaS spring-boot JNPF

智慧云 打造您的商城APP,与5G时代社交电商融为一体

知者如C

断点重传、错误自动重传,优秀的文件传输工具应该具备这些特性

镭速

文件传输 文件传输工具

Redis:揭秘高效缓存与数据存储利器

互联网工科生

redis 数据结构 数据存储

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