InfluxDB檔案結構解析

2021-09-26 11:11:16 字數 2661 閱讀 4667

influxdb檔案目錄結構如上圖所示,從圖中我們可以看出influxdb主目錄下有3個子目錄:data,wal,meta:

tsm檔案按列儲存時序資料,其檔案結構如上所示。該檔案主要分為兩個三個部分:

indexblock: 儲存對應datablock的相關索引資訊

footer: 第乙個indexblock在檔案中的偏移量,通過footer能夠快速查詢到indexblock的起始位置,再通過indexblock能查到對應的datablock

當有新的serieskey寫入時,首先會將該serieskey寫入到tsl檔案,tsl檔案結構如上圖所示:

seriesid: 採用可變長編碼,當flag為seriesinsertflag和seriestombstoneflag時,seriesid為非0正數,其他情況均為0

measurementsize: 表示measurement項的長度

measurement: measurement名稱,當flag為seriesinsertflag和seriestombstoneflag時,measurementsize為0,該項為空

tagkeysize: 表示tagkey項的長度

tagkey:當flag為tagkeytombstoneflag和ta**aluetombstoneflag時,tagkeysize不為0,tagkey儲存對應值,其他情況tagkeysize均為0,tagkey為空

ta**aluesize:表示ta**alue項的長度

ta**alue: 當flag為ta**aluetombstoneflag時,ta**aluesize非0,ta**alue儲存對應值,其他情況ta**aluesize均為0,ta**alue為空

checksum: 4-byte定長bigendian編碼校驗和

當tsl檔案大小達到配置的compaction閾值時(由配置檔案中的max-index-log-file-size指定,預設為1m),tsl檔案會compaction成tsi檔案,tsi檔案結構如上圖所示:

ta**aluehashindex:

tagkeyblock:

tagsetblocktrailer:

measurementblock

seriesidset: 插入tsl的的所有seriesid

tombstoneseriesidset:tsl中被刪除的所有seriesid

seriessketch: hyhperloglog結構,儲存tsl中seriesid對應的serieskey(與seriesidset中的seriesid相對應)

tombstonesketch:儲存tsl中tombstoneseriesid對應的serieskey(與tombstoneseriesidset中的seriesid相對應),與seriessketch結合使用獲取measurement cardinality

為了防止資料丟失,influxdb在進行每次寫入或刪除操作時首先會將該操作寫入wal檔案中,wal如上圖所示:

series segment檔案中存放serieskey,該檔案結構如上所示:

seriestombstoneentry

flag: seriesentrytombstoneflag,標誌該entry為seriestombstoneentry

series index檔案為series segment檔案的索引檔案,該檔案儲存seriesid -> serieskeyoffset的對映,series segment以及series index為db級別檔案

idoffsetmapblock:通過該block可以獲得不同seriesid對應的serieskey,hash物件為seriesid

InfluxDB基礎知識解析

目錄 database rentention policy shardgroup shard shardgroup shard sharding database influxdb中有database的概念,使用者可以通過 create database 的方式建立。乙個例項可以包含多個databa...

Torrent檔案結構解析

torrent檔案內的資料結構分為以下幾部分 announce tracker的主伺服器 announce list tracker伺服器列表 comment 種子檔案的注釋 comment.utf 8 種子檔案注釋的utf 8編碼 creation date 種子檔案建立的時間,是從1970年1月...

BMP檔案結構解析

一 bmp檔案結構 bmp檔案組成 bmp檔案由檔案頭 位圖資訊頭 顏色資訊和圖形資料四部分組成。bmp檔案頭 bmp檔案頭資料結構含有bmp檔案的型別 檔案大小和點陣圖起始位置等資訊。其結構定義如下 typedef struct tagbitmapfileheader bitmapfilehead...