victoriametrics

victoriametrics

💡 原文中文,约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 目录是为了兼顾近期数据的快速读取和历史数据的高压缩率。

➡️

继续阅读