influxdb比较核心的内容大致分为两个部分:
1 TSM文件实现时序数据高效率写入与压缩,其提供的文件级别的B+树索引可以有效提高根据serieskey查找时间序列的性能
2 Influxdb还实现了内存索引****(Memory-Based Index)以及文件索引****(Disk-Based Index)。
Memory-Based Index
内存索引主要涉及这两个结构:
// tagkey -> seriesID
seriesByTagKeyValue: map<tagkey, map<tagValue, List< seriesID > > >
// seriesID -> seriesKey
seriesByID: map< seriesID, *series>
Disk-Based Index
内存索引存在天然缺陷:
1 受限于内存大小,无法支持大量的series key;
2 一旦influxdb进程挂掉,需要扫描所有psm文件来恢复索引信息;
因此设计了Disk-Based Index,将索引信息持久到磁盘中,使用时再进行加载。
influxdb中对倒排索引与时序数据的存储都使用了相同的存储机制——LSM,Disk-Based Index 的结构如下:

参考:
influxdb数据读取
influxdb倒排索引
influxdb数据写入
InfluxDB索引机制解析
本文深入探讨InfluxDB的高效时序数据管理机制,包括TSM文件如何实现数据的快速写入与压缩,以及内存索引和磁盘索引的结构与作用。解析InfluxDB如何克服内存索引的局限,通过Disk-BasedIndex确保数据持久化。
1306

被折叠的 条评论
为什么被折叠?



