LogDevice分布式日志存储系统
LogDevice 是 Facebook 开源的一个可扩展,具备容错性的分布式日志系统。
LogDevice 是专为日志设计的分布式数据存储系统。一般的文件系统会将数据储存为文件,LogDevice 会将数据存储为日志,这些日志可被视为记录式的,追加式的和可修剪的文件。
记录式的(record-oriented)意味着数据作为不可分割的记录写入日志,而不是单个字节。日志实质上是问题的最小单元,用户也一定是读取整行日志。日志的存储原则是按照日志序列号(LSN)来存放,且编号不保证是连续的,可能存在间隙。作者不会事先知道成功写入后将为其日志分配什么 LSN ,这样日志系统就可以优先高写入需求,对写入失败容错。
日志是追加式的(append-only),不支持修改现有记录。
日志在被删除之前预计会存在相对较长一段时间:几天、几月甚至几年。日志的主要空间回收机制是修剪(trimming),根据基于时间或基于空间的保留策略,删除最旧的记录,或响应修剪日志的请求。
LogDevice 从头开始设计,可提供大规模、高可靠性和高效率的多种日志类型。它还具备高度可调性,允许对每个用例进行优化,以便在从耐久性到效率性,一致性到可用性中进行恰当的权衡取舍。
LogDevice 支持的一些 workload 示例:
预写式日志
在分布式数据库中记录日志
事件日志
流处理
ML 训练流程
复制状态机
延期工作项目进度
评论