更新时间:2019-10-11 18:53:18
封面
版权信息
前言
第一部分 Part1 基础环境篇
Chapter1 第1章 阅读源代码前的准备
1.1 ODL项目介绍
1.1.1 ODL框架之争
1.1.2 SAL的演进
1.1.3 ODL的子项目及分类
1.1.4 ODL项目的管理
1.2 搭建ODL编译构建环境
1.2.1 安装JDK
1.2.2 安装及配置Maven
1.3 阅读和调试ODL源代码
1.3.1 ODL项目源码下载
1.3.2 IntelliJ IDEA安装
1.3.3 IntelliJ IDEA调试ODL的项目源码
1.4 ODL设计目标
1.5 ODL总体架构
1.6 本章小结
Chapter2 第2章 ODL项目管理设计详解
2.1 问题的提出
2.2 解决思路
2.3 实现详解
2.3.1 基础parent设计
2.3.2 模块构建
2.3.3 feature组织
2.3.4 版本打包
2.4 项目模板
2.4.1 项目目录布局设计
2.4.2 ODL模板项目
2.5 本章小结
第二部分 Part2 核心原理篇
Chapter3 第3章 ODL基本对象的设计与实现
3.1 QName
3.1.1 QName定义
3.1.2 QName对象比较
3.1.3 QName对象创建
3.2 YangInstanceIdentifier
3.2.1 Path接口定义
3.2.2 YangInstanceIdentifier的类定义
3.2.3 YangInstanceIdentifier的比较
3.2.4 InstanceIdentifier类
3.3 NomalizedNode
3.3.1 NormalizedNode类的定义
3.3.2 NormalizedNode实例的创建
3.4 本章小结
Chapter4 第4章 数据树的设计与实现
4.1 基本概念
4.1.1 配置树与状态树
4.1.2 标识与定位
4.1.3 快照与MVCC
4.2 数据树的设计与实现
4.2.1 Tree结构的设计
4.2.2 DataTree相关接口定义
4.2.3 DataTree的创建
4.3 数据树的读写过程
4.3.1 快照实现原理
4.3.2 数据校验的实现
4.4 MVCC机制与实现
4.4.1 版本号变更规则
4.4.2 并发控制
4.5 本章小结
Chapter5 第5章 MD-SAL DataStore接口设计
5.1 基本概念
5.1.1 事务和事务链
5.1.2 数据分片
5.1.3 三阶段提交
5.2 DataStore SPI设计
5.2.1 DOMStore
5.2.2 DOMStoreThreePhaseCommitCohort
5.2.3 DOMStoreTreePublisher
5.3 DataStore DOM API设计
5.3.1 DOMDataBroker
5.3.2 DOMDataTreeShardingService
5.3.3 DOMDataTreeChangeService
5.4 DataStore Binding API设计
5.4.1 Binding基本对象接口
5.4.2 DataBroker
5.4.3 DataTreeChangeService
5.5 本章小结
Chapter6 第6章 MD-SAL DataStore的实现原理
6.1 概述
6.1.1 背景知识
6.1.2 实现原理
6.2 Raft算法及其实现
6.2.1 Raft算法介绍
6.2.2 RaftActor设计与实现
6.3 DataStore后端实现详解
6.3.1 Shard的实现
6.3.2 ShardManager
6.3.3 ShardStrategy及实现
6.4 DataStore前端实现详解
6.4.1 DOMStore的实现
6.4.2 DOMDataBroker的实现
6.4.3 事务链实现
6.5 Binding DataBroker的实现
6.5.1 Adapter设计
6.5.2 BindingDOMDataBrokerAdapter的初始化
6.6 本章小结