Opendaylight DOM DataStore研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DOM DataStore

修改记录

新标准化树形数据模型

对于数据的新标准化模型将代表后面的YANG 规格的实际概念。这将不再是基于序列化格式(定义见YANG 规格和使用的SAL-经纪参数impl1.0)。

●NormalizedNode

代表在树结构中的一个节点的基本类型;所有其他节点类型是来自这个基本类型。它包含一个叶子识别符和一个值。

⏹DataContainerNode

其中包含多个叶节点;它在YANG语法中没有直接表示。

◆ContainerNode

容器节点,它包含了多个子叶片和映射到YANG容器陈述。(Node, which

represents a leaf which can occur only once per parent node; it contains multiple child

leaves and maps to the container statement in YANG.)

◆MapEntryNode

节点代表一个叶子,叶子是唯一识别的键的值。MapEntryNode中可以包含多

个。(Node which represents a leaf, which can occur multiple times; a leave is

uniquely identified by the value of its key. A MapEntryNode may contain

multiple)

◆ChoiceNode

节点代表一个叶子,这大多发生一次,每个父节点,但可能的值可以有不同的

类型。地图来选择语句。类型映射到该选择的case语句。

◆AugmentationNode

Node which represents a leaf, which occurs mostly once per parent node.

⏹LeafNode

叶子节点,存放相关值(PS:官网解释是 Contains simple value.)。

⏹LeafSetEntryNode

⏹LeafSetNode

⏹MapNode

Data Store接口

DOM Data Broker

提供访问概念性数据树存储方法,并提供接口对存储树的某一分支下的数据更改。

具体定义的类

执行过程

当前的DOM数据代理(DOM Data Broker)并没有设计成一个智能化的内存缓存树形结构,这种内存缓存树形结构能够跟踪依赖关系,计算变更和维护提交处理程序,通知监听器和实现数据之间的关系假设。这可能会导致效率低下,执行两个阶段提交,其中在由数据代理本身所做的一切状态跟踪。如下所示:

1. 计算受影响的子树。

2. 过滤提交处理受影响的子树。

3. 过滤数据受影响子树的数据改变监听器。

4. 捕获初始状态数据的更改监听器。

5. 启动所有受影响的提交处理程序的提交申请。

6. 完成提交的所有受影响的提交处理程序。

7. 捕获最后的数据状态改变监听器。

8. 向受影响的数据更改监听器发布数据更改事件。

DOM Data Broker和Data Store

DOM Data Broker获取事务链中的事务

SAL层中DOM Data Broker是怎样调用Data Store的呢?

DataBrokerImpl

就是指下一个事务。可以看出DOM Data Broker是读取事务链里面的事务来对Data Store操作。而nextTransaction更像是一个指针指向下次操作的事务。

其通过将nextTransaction传入到beginTransaction()函数里,返回一个DataTransactionImpl类型的对象。DataTransactionImpl是继承AbstractDataTransaction的。下面先看看AbstractDataTransaction。

●AbstractDataTransaction

其构造函数:

其中传入的参数:identifier是标示事务链中要操作的事务。而dataBroker则是要连接的数据代理。

●DataTransactionImpl

registerListener()

DOM Data Broker操作Data Store,是通过监听完成的,而这个监听函数注册就是DataTransactionImpl类里面的registerListener()。

到这里我们只能认识到DOMDataBroker是怎么样读取事务链中的事务。DOMDataBroker 是怎么联系上DOM stroe的呢?

DOMDataBroker绑定DOM Store

DOMDataBroker操作DOM Data Store

过调用事务链中定义好的方法。

DOM Data Broker和Connector

Binding independent Connector是怎么样连接DOM Data Broker和FW Data Broker的?

●BindingIndependentConnector

里面内容较多,很多都和框架服务有关,暂时先不看。

●BindingDomConnectorDeployer

因为其是一个具体的实现类,里面内容较多,目前有一个笼统的认识。

先看看里面的函数:

通过mappingService创建一个connector,其中mappingService的作用有待研究。

相关文档
最新文档