💡
原文中文,约4400字,阅读约需11分钟。
📝
内容提要
VictoriaMetrics 是一个时序数据库,由 vmstorage、vminsert 和 vmselect 三部分组成。vmstorage 提供高可用的数据存储,采用无共享架构。数据通过 vminsert 进行分片写入,vmselect 负责查询。数据存储分为 small 和 big 目录,以优化读取和压缩效率,使用 ZSTD 压缩算法提升性能。
🎯
关键要点
- VictoriaMetrics 由 vmstorage、vminsert 和 vmselect 三部分组成。
- vmstorage 提供高可用的数据存储,采用无共享架构,节点间不共享数据。
- vminsert 负责数据的分片写入,使用一致性哈希算法进行数据分片。
- vmselect 负责根据查询条件从 vmstorage 中检索数据。
- 数据存储分为 small 和 big 目录,以优化读取和压缩效率。
- small 目录使用低级别的 ZSTD 压缩,big 目录使用高级别的 ZSTD 压缩。
- 数据在写入时先存入 small 目录,经过合并后转移到 big 目录。
- indexdb 目录用于存储索引信息,每个表目录代表一个自治的索引。
- vminsert 确保每个唯一的时间序列最终位于同一分片的 vmstorage 上。
- vmselect 向 vmstorage 节点发送请求,合并去重后返回数据给客户端。
❓
延伸问答
VictoriaMetrics 的主要组成部分有哪些?
VictoriaMetrics 主要由 vmstorage、vminsert 和 vmselect 三部分组成。
vmstorage 是如何确保数据高可用的?
vmstorage 采用无共享架构,通过复制方法将数据写入多个节点,确保数据的高可用性。
vminsert 在数据写入中起什么作用?
vminsert 负责将数据进行分片写入,使用一致性哈希算法确保每个时间序列位于同一分片的 vmstorage 上。
vmselect 是如何处理查询请求的?
vmselect 向 vmstorage 节点发送查询请求,合并去重后将结果返回给客户端。
VictoriaMetrics 中的数据存储是如何优化的?
数据存储分为 small 和 big 目录,使用不同级别的 ZSTD 压缩算法,以优化读取和压缩效率。
为什么要将数据分为 small 和 big 目录?
分为 small 和 big 目录是为了兼顾近期数据的快速读取和历史数据的高压缩率。
➡️