Theine v0.3.0 发布,新增 DRAM + NVM 混合缓存模式

2023-06-11 13:02:58 +08:00
 matrix1010

Theine: https://github.com/Yiling-J/theine-go

如果你对缓存比较熟悉,肯定听说过 Meta 的 CacheLib 。CacheLib 广泛应用在 Meta 的各类服务中,并且 Meta 内部 RocksDB 的 secondary cache 用的也是 CacheLib 。CacheLib 的一个非常重要的功能就是 Hybrid Cache ,简单来说就是把从 DRAM 驱逐出来的数据再次存入 NVM 设备中。

Theine v0.3.0 添加的 Hybrid Cache 功能就是参照了 CacheLib 的 Hybrid Cache 。通过 BigHash 和 Block Cache 两种数据结构来处理不同大小的数据。由于 Theine 本身采用了自适应 Window-TinyLFU 策略, 因此能确保各种模式的 workload 下 DRAM 部分都能有着较好的命中率,提高了整个混合缓存系统的总体性能。

稍后我会写篇文章详细介绍一下。这里先放上 CacheLib Hybrid Cache 的架构介绍,有兴趣的可以看看: Navy Overview

Theine 的目标是成为 Go 最强缓存框架,现在已经有一些用户以及开源项目在实际使用 Theine 了, 欢迎大家试用。如果有什么功能需求我觉得合理也会尽快加上。觉得不错欢迎点个 star!

1217 次点击
所在节点    Go 编程语言
1 条回复
matrix1010
2023-06-11 13:23:47 +08:00
顺带打个小广告,最近接手了 go-txdb ( https://github.com/DATA-DOG/go-txdb) 的维护工作,有需要写涉及数据库的集成测试的同学可以试一试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/947724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX