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...