influxdb 关于influxdb:InfluxDB集群-antientropy概念解析 anti-entropy意为“反熵”,熵简略的了解成shard间的不统一;anit-entropy运行在data节点上,通过比照shard间的不统一,进行shard数据修复,实现数据的最终统一。
influxdb 关于influxdb:InfluxDB集群-hintedhandoff源码分析三points发送到远端节点 在本机节点上,给每个远端节点调配一个NodeProcessor对象,负责数据的写入和数据的读取。NodeProcessor定期的读取本机队列中的数据,而后将其发送给远端节点,尝试写入远端shard。 {代码…} 读取和发送过程首先,ping远端节点,判断其是否沉闷,如果不沉闷,则间接返回;而后,读Head segment中的block,读操作均是从se…
influxdb 关于influxdb:InfluxDB集群-hintedhandoff源码分析二points写入到本机队列 每个远端节点对应一个NodeProcessor,由NodeProcessor负责将远端写入失败的points,写入到本机队列: {代码…} 本机队列的格局每个NodeProcess有1个queue,对应于$data/hh的一个目录:每个queue对应一个目录,默认最大1Gi;queue内蕴含若干个segment,从tail写入,从head读出;每个segment对应一个文件,默认最大1Mi;se…
influxdb 关于influxdb:InfluxDB集群-hintedhandoff源码分析一整体流程 influxdb集群场景下,1个shard有N个replcia,通常replica在不同的节点上;写shard时,所有的replica都要写入。
influxdb 关于influxdb:InfluxDB集群-write写入数据源码分析二 上文讲到,每个shard有N个replica,也就是N个replica owner,通常是不同的节点,否则就起不到高可用的作用了。 {代码…} 写shard时,要写入所有的replica owner,可能是本机节点,也可能是远端节点。 {代码…} 本地节点写shard本地节点写shard,最终调用的是存储引擎的WritePoints: {代码…} 存储引擎WritePoints():…
influxdb 关于influxdb:InfluxDB集群-write写入数据源码分析一 Client通过POST /write向influxdb集群写入时序数据: {代码…} influxdb集群中的数据分shard在不同的节点上存储,client写入时序数据时(单条或批量):有的数据须要写入以后节点;有的数据须要写入远端节点;在写入时,所有shard都写入胜利时,才认为该写入申请胜利。整体流程:node1在8086上接管/write申请,而后依据写…
influxdb 关于influxdb:InfluxDB集群-query查询数据源码分析一 influxdb集群中的数据分shard在不同的节点上存储,client查问的指标数据,可能不在以后节点上,也可能以后节点和其它节点上都有,所以在查问时,即须要查问以后节点,也须要查问近程节点,而后将数据合并后返回client。
influxdb 关于influxdb:InfluxDB集群-移除DataNode源码分析 node1收到CLI命令,向本人的8084发送GET /remove-data申请,request body: {“node”:”node3:8088″};
influxdb 关于influxdb:InfluxDB集群-添加DataNode源码分析 node1收到CLI命令,向本人的8084发送GET /add-data申请,request body: {“node”: “node3:8088”};
influxdb 关于influxdb:InfluxDB集群-移除MetaNode源码分析 node1收到CLI命令,向本人8084端口发送GET /remove-meta的申请,request body: {“metahttp:”: “node3:8091”};