searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Victoriametrics 在大规模新增时间线场景下如何提升写入性能

2023-06-16 03:35:04
42
0

victoriametrics是一款高性能的时许数据库,可以作为prometheus远端存储使用,以下简称vm

本文主要介绍vm在处理大规模新增时间线时的一个硬核操作。对vm有过使用经验的人应该都能发现一个问题,存的数据时间越长写入性能越差,主要是因为在写入一条数据的时候要先判断下是不是新的时间线。首先会去tsid缓存里面找一下,能找到的话就很快。找不到的时候就得去磁盘找,数据存的越多,找起来越慢。于是vm在这个过程做了个小优化,直接看代码:

这是vm1.83版本的代码,从代码可以看出来,如果一批数据里面找连续找100次都没找到的话,就不再判断存不存在了,直接当成新数据写到磁盘。如果写超过了10000次,再重新去磁盘里面找。

 

对于大规模新增时间线的场景,这操作确实能大大提高写入的性能。

 

同时这100和10000这两个值也是可以根据实际的场景来调整。

0条评论
0 / 1000
李****涛
13文章数
0粉丝数
李****涛
13 文章 | 0 粉丝
原创

Victoriametrics 在大规模新增时间线场景下如何提升写入性能

2023-06-16 03:35:04
42
0

victoriametrics是一款高性能的时许数据库,可以作为prometheus远端存储使用,以下简称vm

本文主要介绍vm在处理大规模新增时间线时的一个硬核操作。对vm有过使用经验的人应该都能发现一个问题,存的数据时间越长写入性能越差,主要是因为在写入一条数据的时候要先判断下是不是新的时间线。首先会去tsid缓存里面找一下,能找到的话就很快。找不到的时候就得去磁盘找,数据存的越多,找起来越慢。于是vm在这个过程做了个小优化,直接看代码:

这是vm1.83版本的代码,从代码可以看出来,如果一批数据里面找连续找100次都没找到的话,就不再判断存不存在了,直接当成新数据写到磁盘。如果写超过了10000次,再重新去磁盘里面找。

 

对于大规模新增时间线的场景,这操作确实能大大提高写入的性能。

 

同时这100和10000这两个值也是可以根据实际的场景来调整。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0