LogDevice - 分布式日志存储系统


BSD
跨平台
C/C++

软件简介

LogDevice 是 Facebook 开源的一个可扩展,具备容错性的分布式日志系统。

LogDevice 是专为日志设计的分布式数据存储系统。一般的文件系统会将数据储存为文件,LogDevice
会将数据存储为日志,这些日志可被视为记录式的,追加式的和可修剪的文件。

  • 记录式的(record-oriented) 意味着数据作为不可分割的记录写入日志,而不是单个字节。日志实质上是问题的最小单元,用户也一定是读取整行日志。日志的存储原则是按照 日志序列号 (LSN)来存放,且编号不保证是连续的,可能存在间隙。作者不会事先知道成功写入后将为其日志分配什么 LSN ,这样日志系统就可以优先高写入需求,对写入失败容错。

  • 日志是 追加式的(append-only), 不支持修改现有记录。

  • 日志在被删除之前预计会存在相对较长一段时间:几天、几月甚至几年。日志的主要空间回收机制是 修剪(trimming) ,根据基于时间或基于空间的保留策略,删除最旧的记录,或响应修剪日志的请求。

LogDevice
从头开始设计,可提供大规模、高可靠性和高效率的多种日志类型。它还具备高度可调性,允许对每个用例进行优化,以便在从耐久性到效率性,一致性到可用性中进行恰当的权衡取舍。

LogDevice 支持的一些 workload 示例:

  • 预写式日志

  • 在分布式数据库中记录日志

  • 事件日志

  • 流处理

  • ML 训练流程

  • 复制状态机

  • 延期工作项目进度