设为首页 加入收藏

TOP

InfluxDB meta文件解析
2018-01-17 13:04:54 】 浏览:51
Tags:InfluxDB meta 文件 解析

go语言版本:1.8.3 linux/amd64


InfluxDB版本:1.1.0


influxdb默认配置:


meta默认配置:


meta数据存放目录,默认值:/var/lib/influxdb/meta


meta数据文件默认路径:/var/lib/influxdb/meta/meta.db


用于控制默认存储策略,数据库创建时,会自动生成autogen的存储策略,默认值:true


是否开启meta日志,默认值:true


源码路径: github.com/influxdata/influxdb/services/meta/client.go


meta文件dump


snapshot可以通过以下两种方式触发:


1、当执行 Client.Open 函数时会进行snapshot操作;


2、执行meta文件更新时通过commit函数进行snapshot操作;


在InfluxDB中程序中,通过 NewServer 函数创建MetaClient变量(meta.NewClient),然后执行MetaClient.Open()进行初始化;


后续会通过Server.Open函数(run/server.go)启动各项服务,如果有meta文件的更新操作,通过commit函数进行snapshot操作;


meta文件load


Client.Open()中会执行Load操作,NewServer时会自动加载。


源码路径: github.com/influxdata/influxdb/services/meta/data.go


meta数据encode:


meta数据decode:


proto路径 :github.com/gogo/protobuf/proto


源码路径: github.com/influxdata/influxdb/services/meta/data.go


meta文件存储的就是 meta.Data 的数据,结构定义如下:


Term :暂时不知道干什么用的。


Index :从源码看这个应该是类似版本号的东西,初始化为1,执行commit操作是会增加。如果为1,会立即执行持久化操作(在Open函数中操作)。


ClusterID : 是InfluxDB集群相关内容;


Databases :用于存储数据库信息;


Users :用于存储数据库用户信息;


DatabaseInfo 定义 :


RetentionPolicyInfo 定义:


ShardGroupInfo 定义:


ShardInfo 定义:


ShardOwner 定义:


ShardOwner主要用于集群,其中NodeId用于标识集群的节点ID,在InfluxDB 1.1社区版本中集群已经不支持了,该字段无效。


SubscriptionInfo 定义:


ContinuousQueryInfo 定义:


UserInfo 定义:


meta文件解析示例代码:


好,就这些了,希望对你有帮助。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇12C还原使用旧版本RMAN所创建的备.. 下一篇Oracle的事务处理机制讲解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目