本文共 778 字,大约阅读时间需要 2 分钟。
当前内容主要为本人学习和了解当前的iotdb的源码,发现其设计内存表的模型(数据结构)
本人是直接在GitHub上面直接拉取的源码
开始源码查看
HashMap
来实现key为一个devcId(即一个时序的前缀)
value为另外一个Map存放一个实际的时序后缀+时间集合数组+值集合数组
就是这么简单
private MeasurementSchema schema;private TVList list;
一看属性,就知道这个存放的是测点的Schame(这个是在创建测点的时候可以手动提供的,或者自动类型推断出来的)
,以及实际存放的书TVList
查看方法
所以WritableMemChunk就是一个提供写入功能的实现类,提供批量和单个数据的写入操作
该部分位于:org\apache\iotdb\db\utils\datastructure
,数据结构部分
查看子类:BinaryTVList
其实就是通过特定的算法计算获取存放的数据下标,然后通过取余算法获取元素下标
1.iotdb内部维护的是一个内存表
,HashMap表,并采用devcId作为当前的key,取出另外一个存放值的Map表,最后通过存放集合数组方式存放特定的数据
2.iotdb内部采用特定的类型,提供排序的时序和排序的值方式,维护了两份数组作为排序,保留原来的数据List数组
转载地址:http://zcrh.baihongyu.com/