作者简介
任杰 百度高级研发工程师
负责百度智能运维产品(Noah)的分布式时序数据存储设计研发工作,在大规模分布式存储、NoSQL数据库方面有大量实践经验。
干货概览
在前文《百度时序数据库——存储的省钱之道》中,我们介绍了百度Noah TSDB数据缓存层所采用的数据压缩算法,并对该压缩算法的核心原理进行了详细介绍,介绍了“省钱”的理论。今天我们将整体介绍一下该数据压缩算法在百度Noah TSDB的应用实践,从实践上介绍如何“省钱”。主要通过回答数据在哪儿压缩、压缩哪些数据、数据怎么压缩、压缩效果怎么样这四个问题来进行介绍。
数据在哪儿压缩
既然是介绍数据压缩实践,那么肯定要先介绍我们应用数据压缩的“主战场”。哪里做数据压缩收益更大?
在之前分享的《探索与发现,揭秘百度万亿时序数据存储架构》一文中,我们介绍了Noah TSDB的整体架构,架构图如下:
图1 Noah TSDB整体架构
为了保证在万亿数据点写入规模的高负载场景下,Noah TSDB仍然能够提供低延迟的数据写入和查询能力,我们在底层存储部分进行了分层架构设计,根据不同的性能需求,将数据分别保存到不同的数据库中。数据压缩主要是应用在如下两个部分:
Redis Cluster层
高频访问的数据放入缓存层(Redis Cluster),提供查询快速响应能力。这里是数据压缩、应用Gorilla算法最主要的地方。在缓存层进行数据压缩