ONOS分布式数据结构弱一致性代码追踪
来源:互联网 发布:贵阳大数据 编辑:程序博客网 时间:2024/06/07 02:59
ONOS提供了一些分布式数据结构(distributed primitive)来实现数据的强一致性和最终一致性存储。下面来讨论一下ONOS的弱一致性。
EventuallyConsistentMap是ONOS提供的用来实现弱一致性的分布式原语,它的实现类中提供了一系列参数来设置它的属性,其中就有一个是设置该Map的值是否存储在硬盘上,
下面就流程做一个简单的说明。以下例子是以网络拓扑为例。
在DistributedTopologyStore的activate()方法中,我们在创建存储网络拓扑EventuallyConsistentMap的地方打上断点。
上图第一个红框是DistributedTopologyStore中EventuallyConsistentMap的声明,第二个红框是它的创建初始化。
初始化时,他会调用StorageService去创建,上图红框是要传递的参数persistentService,弱一致性的数据想要存储在硬盘上面,必须通过该服务来创建相应的persistentMap或者persistentSet,该项服务会把数据存储在由PersistenceManager提供的localDB中
以上是PersistentManager的成员变量和activate()方法的截图。
接下来继续EventuallyConsistentMap的创建过程
上图是创建EventuallyConsistentMap的过程,这个过程通过EventuallyConsistentMapbuilderImpl来控制,上面两个红框是我们今天重点关注的两个属性,一个就是我们的persistentService,还有一个就是设置是否将弱一致性数据保存在硬盘上面。EventuallyConsistentMapbuilderImpl提供了一些方法来设置属性。
上图红框是设置保存在硬盘的方法(系统默认是不保存在硬盘上面哦)。
属性等设置完毕后,要调用build()方法来创建EventuallyConsistentMap
上图就是build()方法的截图。
接下来会去EventuallyConsistentMapImpl去创建EventuallyConsistentMap。
上图就是创建过程,可以看到它会根据persistent(boolean)的值来决定是否调用persistentService这个服务。
- ONOS分布式数据结构弱一致性代码追踪
- 追踪分布式Memcached默认的一致性hash算法
- 分布式一致性
- 分布式一致性
- 分布式memcache 一致性哈希算法(采用环状数据结构)
- ONOS之开放分布式SDN操作系统
- ONOS之开放分布式SDN操作系统
- Zipkin分布式任务追踪
- 分布式追踪系统dapper
- Zipkin分布式任务追踪
- 分布式追踪系统资源
- Dubbo分布式日志追踪
- 代码一致性
- 分布式系统---分布式一致性协议
- paxos 分布式一致性算法
- 分布式系统中的一致性
- 分布式的一致性
- 分布式系统一致性研究
- Five-In-a-Row CodeForces
- 第二章:Django模板的渲染
- CodeForces
- java 格式化输出(printf)
- 史上最全最强SpringMVC详细示例实战教程
- ONOS分布式数据结构弱一致性代码追踪
- 论文阅读-《Deformable Part-based Fully Convolutional Network for Object Detection》
- 数据(整型数、浮点数)在计算机内存中的存储方式
- 极光推送,如何接收推送下来的信息。
- 创建Maven web项目时 出现 web.xml is missing and <failOnMissingWebXml> is set to true错误 pox.xml编译错误
- 简单选择排序(js)
- HDU -1598 find the most comfortable road
- spring常用的一些注解以及注解注入总结(二)
- 拓扑排序 hdu 2647