...
(2)用户配置:用户可以配置窗口时间长度t = te - ts
* 注意:开启分区后,用户需要配置“叶子结点个数”(要求为以2为底的幂,如16 注意:开启分区后,用户需要配置“叶子结点个数”(要求为以2为底的幂,如16 = 24),窗口时间长度通过计算得到,
假设1个分区为1周(604,800s),则每个窗口长度为37,800s。
2. 说明
(1)索引的构建从1970年1月1日0点开始,从1开始对CN进行编号。对于之前不存在的时间数据对应的节点,树的叶子节点编号保留,
(1)索引的构建从1970年1月1日0点开始,从1开始对LN进行编号。对于之前不存在的时间数据对应的节点,树的叶子节点编号保留,
不构建上层的内部节点(用查询恢复前面的根节点)不构建上层的内部节点(用查询恢复前面的根节点)。之后出现该时间窗口的乱序数据时,可以直接构建。
(2)每一条时间序列的PISA索引也存储为一条时间序列,CN作为时间戳timestamp,摘要summary中的各种聚合值形成byte的形式作为value。(2)每一条时间序列的PISA索引也存储为一条时间序列,LN作为时间戳timestamp,摘要summary中的各种聚合值以byte的形式作为value。
(3)将所有的PISA索引存储到一个存储组中,便于针对索引的删除和更新的操作。
3. 构建步骤
(1)memtable flush落盘时,向索引管理器发送一个新的窗口摘要Sseq,索引管理器解析开始时间、截止时间和数据摘要信息flush落盘时,索引管理器根据此memtable、内存中保留的之前的memtable和用户配置,
(2)记开始时间为计算此memtable属于的叶子结点的开始时间ts,截止时间为、截止时间te ,则其窗口时间为,并计算数据摘要信息Sseq
(2)写好一个窗口时间为[ts, te)。根据开始时间和终止时间计算窗口的叶子号LN(leaf number)和节点号NN(node number)的叶子节点后,根据开始时间和终止时间计算窗口的叶子号LN(leaf number)和节点号NN(node number);
(3)计算可能的兄弟节点节点号,若兄弟节点存在于内存中,则执行合并操作,逐层向上生成父亲节点。
...
服务器向索引管理器发送一个新的窗口摘要,该分区的开始时间为t7s,截止时间为t7e。
按照LN和NN的计算方法,计算出顺序数据窗口的叶子号LN按照LN和NN的计算方法,计算出顺序数据窗口的叶子号LN=7,节点号NN7,节点号NN=11。
NN=11的节点的兄弟节点节点号NN=12,查询内存得到NN=12的节点存在于内存中,因此合并NN=11,12的两个节点为NN=13;
...