Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MTree中需要记录deviceId的信息(需要考虑如何实现,因为我们支持嵌套序列),也就是说一个MNode,可能既充当Measurement,也要充当device

现有的 MNode 种类包括:

  • MNode (基类,普通的节点,包含 device 节点)
  • StorageGroupMNode(存储组节点,多记录了 TTL 等信息)
  • MeasurementMNode(传感器节点,目前 vector / 非vector 的叶子节点都使用MeasurementMNode)
    • 包含 IMeasurementSchema,对于 vector 类型来说,为 VectorMeasurementSchema;对于非 vector 类型来说,为 MeasurementSchema。
    • 此外还包含 alias 等信息


最小改动:

需要为 MNode 基类增加标志变量:isDevice,表征其是否为 device,从而可以根据路径(fullPath)获取其 deviceId 信息


对于嵌套序列:

可以向上或向下(具体看功能定义)增加嵌套,只需将对应节点的 isDevice 设置为 true 即可。

例如:

原有的序列为:root.sg.d1.s1,假定 d1 为设备,则 d1 节点 isDevice = true

现在需要向下新增一个传感器,即 s1 也成为设备:root.sg.d1.s1.s2,则此时 s1 节点 isDevice = true

注意:s1 节点依然为 MeasurementMNode 节点,也就是说它依然可以作为一条时间序列的叶子节点,不影响现有计算时间序列、展示和查找时间序列的逻辑


设备模板改动

设备模板中字段:
Map<String, IMeasurementSchema> schemaMap
记录了每一个测点名称到其schema的映射,这里需要将其key变为完整测点名称

...