类似推荐
编辑推荐
大厂资深工程师撰写,串联纷繁复杂的分布式存储知识。
内容简介
全书分为3篇。第一篇存储基本原理和分布式基本原理。特别针对Linux OS的IO知识进行讲解,并且还会结合Go的存储编程实现。第二篇剖析现有的存储系统实现,对它们使用的设计,概念,实现进行深入的剖析。以此来借鉴。第三篇进行编程实战,将编写数个极具实践价值的应用程序,并且形成一个完备的分布式存储系统。
作者简介
作者李庆,资深存储系统工程师,拥有近十年存储研发与落地经验。
章节目录
版权信息
前言
第一部分 Go语言基础
第1章 存储概述
1.1 Go语言与存储应用
1.2 存储:云变革的基石
1.3 存储技术的发展
1.3.1 提升速度
1.3.2 扩大容量
1.4 本章小结
第2章 Go语言的数据结构
2.1 字节
2.1.1 字节的定义
2.1.2 字节的序列
2.2 数组和切片
2.2.1 数组
2.2.2 切片
2.3 字符串
2.3.1 变量的定义
2.3.2 内存的分配
2.3.3 字符串的操作
2.3.4 类型转换
2.4 map类型
2.4.1 创建与初始化
2.4.2 读取、写入和删除
2.4.3 元素遍历
2.5 Channel类型
2.5.1 创建与初始化
2.5.2 入队和出队
2.5.3 select和Channel结合
2.5.4 for-range和Channel结合
2.6 接口类型
2.6.1 变量的定义
2.6.2 实现原理
2.6.3 接口nil赋值和判断
2.7 本章小结
第3章 Go语言的I/O框架
3.1 I/O的定义
3.1.1 基础类型
3.1.2 组合类型
3.1.3 进阶类型
3.2 通用I/O函数
3.2.1 面向I/O接口的操作
3.2.2 文件I/O的操作函数
3.3 文件系统
3.3.1 FS接口的定义
3.3.2 FS接口的实现和扩展
3.4 I/O标准库拓扑
3.4.1 字节I/O
3.4.2 字符串I/O
3.4.3 网络I/O
3.4.4 文件I/O
3.4.5 缓冲I/O
3.5 文件I/O和网络I/O
3.5.1 文件I/O
3.5.2 网络I/O
3.6 本章小结
第二部分 存储基础
第4章 Linux存储基础
4.1 存储架构
4.1.1 系统调用
4.1.2 VFS层
4.1.3 文件系统层
4.1.4 块层
4.1.5 设备驱动层
4.2 文件的定义
4.2.1 文件的类型
4.2.2 一切皆文件
4.2.3 文件句柄
4.3 文件系统
4.3.1 文件系统的挂载要素
4.3.2 文件系统的开发要素
4.4 文件I/O函数
4.4.1 打开文件
4.4.2 写文件
4.4.3 读文件
4.4.4 文件偏移操作
4.4.5 数据刷盘
4.4.6 关闭文件
4.5 本章小结
第5章 存储I/O实践
5.1 文件的读写
5.1.1 顺序I/O
5.1.2 随机I/O
5.2 数据安全落盘的方式
5.2.1 Sync刷盘方式
5.2.2 Direct I/O方式
5.3 读写优化思路
5.3.1 写操作的优化
5.3.2 读操作的优化
5.4 本章小结
第6章 高级I/O模式
6.1 阻塞和非阻塞I/O
6.2 同步和异步I/O
6.3 I/O接口的模式
6.3.1 同步阻塞I/O
6.3.2 同步非阻塞I/O
6.3.3 异步阻塞I/O
6.3.4 异步非阻塞I/O
6.4 Linux的I/O模式实现
6.4.1 信号驱动I/O
6.4.2 Linux的异步I/O
6.4.3 I/O多路复用
6.5 本章小结
第7章 并发I/O模型
7.1 多进程模型
7.2 多线程模型
7.3 协程模型
7.3.1 基本原理
7.3.2 Go语言的Goroutine
7.4 I/O多路复用
7.4.1 select
7.4.2 poll
7.4.3 epoll
7.5 本章小结
第8章 缓存模式
8.1 旁路缓存模式
8.1.1 读操作流程
8.1.2 写操作流程
8.2 读写穿透模式
8.2.1 读穿透模式
8.2.2 写穿透模式
8.3 异步回写模式
8.4 本章小结
第9章 数据校验技术
9.1 数据校验的概念与原理
9.2 数据校验的应用场景
9.3 常见数据校验技术
9.3.1 奇偶校验
9.3.2 循环冗余校验
9.3.3 摘要算法
9.4 本章小结
第三部分 分布式系统基础
第10章 分布式存储理论
10.1 分布式系统的特征
10.2 分布式系统的问题
10.2.1 无全局时钟
10.2.2 网络异常
10.2.3 结果的三态
10.3 数据一致性
10.3.1 状态一致性
10.3.2 操作一致性
10.4 分布式理论
10.4.1 CAP理论
10.4.2 BASE理论
10.5 分布式协议
10.5.1 2PC协议
10.5.2 3PC协议
10.5.3 Paxos协议
10.5.4 Raft协议
10.6 本章小结
第11章 高可用系统
11.1 高可用的概念与原理
11.2 高可用的关键技术
11.3 高可用的架构模式
11.3.1 双机架构的模式
11.3.2 集群模式
11.4 本章小结
第12章 数据策略
12.1 数据分布设计原则
12.2 数据分布策略
12.2.1 随机打散
12.2.2 散列分片
12.2.3 范围分片
12.3 数据冗余策略
12.3.1 多副本
12.3.2 纠删码
12.4 本章小结
第四部分 存储系统实战
第13章 内核Minix文件系统
13.1 Minix文件系统的架构
13.2 Minix文件系统的实践
13.2.1 设备文件
13.2.2 格式化
13.2.3 目录挂载
13.3 Minix文件系统的实现原理
13.3.1 超级块的定义
13.3.2 inode结构体的定义
13.3.3 操作表的实现
13.3.4 文件系统类型的定义
13.3.5 文件系统加载和卸载
13.4 文件的读写
13.4.1 Minix打开文件
13.4.2 Minix写流程
13.4.3 Minix读流程
13.5 本章小结
第14章 存储引擎LevelDB
14.1 整体架构
14.1.1 LevelDB的各种Key
14.1.2 WAL
14.1.3 MemTable
14.1.4 SSTable
14.2 写流程
14.3 读流程
14.4 删除流程
14.5 空间回收
14.6 本章小结
第15章 用户态文件系统
15.1 整体架构
15.2 内核态
15.2.1 fuse.ko模块文件
15.2.2 /dev/fuse设备文件
15.2.3 fuse文件系统
15.2.4 fuse的I/O链路
15.2.5 fusectl文件系统
15.3 用户态
15.3.1 FUSE协议
15.3.2 挂载工具
15.3.3 用户态框架
15.3.4 业务侧定制
15.4 本章小结
第16章 分布式文件系统进阶
16.1 架构设计
16.2 元数据中心
16.2.1 元数据的特征
16.2.2 数据表结构定义
16.3 接入层
16.3.1 目录实现
16.3.2 文件实现
16.3.3 冗余策略
16.3.4 网络模块
16.4 存储层
16.4.1 空间管理
16.4.2 请求路由
16.4.3 数据读写
16.4.4 存储模块
16.5 系统测试
16.5.1 集群初始化
16.5.2 数据测试
16.6 进阶思考
16.6.1 数据的分片
16.6.2 细粒度的CRC
16.6.3 更小的冗余度
16.7 本章小结
推荐阅读
分布式存储系统:核心技术、系统实现与Go项目实战是2024年由机械工业出版社出版,作者李庆。
得书感谢您对《分布式存储系统:核心技术、系统实现与Go项目实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。