主要观点:Datadog 推出用 Rust 编写的新实时时间序列存储引擎 Monocle,统一公司指标存储基础设施,提高摄入吞吐量和降低查询延迟,减少运营复杂性,整合了之前多种存储后端的方法。
关键信息:
- 早期存储架构将责任分离,包括实时数据库(RTDB)存储数据,索引数据库维护标识符和标签,存储路由器指导指标到 RTDB 节点,查询在多个节点间分发。
- RTDB 架构经过多次迭代,各代有不同特点和问题,如第一代依赖 Cassandra 写入吞吐量高但查询灵活性有限等。
- Monocle 采用每核分片、每片工作线程模型,每个存储工作线程管理自己的日志结构合并树(LSM-tree)实例,整合之前方法,消除写路径的锁和原子操作,提高并发。
- 引擎整合摄入、存储和查询处理,通过 Radix-tree 缓冲区加速聚合,统一缓存降低查询延迟,按时间分段并使用最近最少使用(LRU)策略。
重要细节: - Monocle 的链接
- 各代存储后端的具体特点及问题,如 Cassandra 写入高但查询灵活受限、Redis 响应性改善但有耐久性和单线程执行问题等。
- 性能基准测试显示 Monocle 在摄入吞吐量、查询延迟和成本效率方面的显著提升,如 60 倍摄入吞吐量提升、峰值规模下 5 倍查询延迟降低等。
- Rust 重写和模块化设计的另一个关键好处是组件可在其他系统中复用,提高可维护性和平台一致性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。