科技
类型
可以朗读
语音朗读
246千字
字数
2024-08-01
发行日期
展开全部
主编推荐语
大厂资深工程师撰写,串联纷繁复杂的分布式存储知识。
内容简介
全书分为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 本章小结
- 推荐阅读
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。