Versions Compared

Key

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

...

  1. LastCacheAccessor通过调用MManager.getNodeByPath(PartialPath path)获取序列对应的MeasurementMNode
    1. 如果是普通一元序列,则正常返回MeasurementMNode
    2. 如果是template表示的序列,则将对应的序列schema与封装为临时的MeasurementMNode返回
    3. 如果是多元序列,返回该多元序列对应的MeasurementMNode
    4. 如果是template表示的多元序列,则结合b和c两种处理方式,b中封装的schema将为VectorMeasurementSchema
  2. LastCacheAccessor调用MManager.getLastCache
    1. 若1中的操作成功,则可传入node,避免MManager对measurementMNode的二次查找,并且多元序列场景中path需额外传入具体的目标分量。若1中节点获取失败,则尝试仅基于path查找lastCache结果,此时MManager会基于path进行MeasurementMNode查找
    2. 若1中节点获取失败,则尝试仅基于path查找lastCache结果,多元序列分量场景需传入目标分量的全路径,此时MManager会基于path进行MeasurementMNode查找
  3. MManager调用LastCacheMManager的getLastCache接口
    1. 判断是否为template表示的序列,即判断传入的measurementMNode的parent EntityMNode是否有对应的子节点,若无则从EntityMNode中获取到LastCacheContainer并赋予该measurementMNode
    2. 如果是一元序列,获取measurementMNode中的lastCacheContainer后获取其持有的lastCacheValue
    3. 如果是多元序列,先获取分量名,再从schema中获取分量的index然后再从lastCacheContainer获取lastCacheValue

...