分布式存储系统:核心技术、系统实现与Go项目实战

分布式存储系统:核心技术、系统实现与Go项目实战

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

大厂资深工程师撰写,串联纷繁复杂的分布式存储知识。

内容简介

全书分为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项目实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
操作系统原理与实现 电子书
操作系统是计算机系统的核心,是其他一切软件运行的基础。本书主要介绍操作系统的基本原理和实现方法。全书共12章,包括操作系统概论、进程管理、处理器管理、内存管理、I/O设备管理、磁盘和固态硬盘、文件系统、操作系统安全、分布式操作系统、虚拟机、鸿蒙操作系统、欧拉操作系统等内容。本书以鸿蒙和欧拉等具有代表性的国产操作系统为例,通过对操作系统知识的讲解,帮助学生系统掌握操作系统的基本概念、工作原理、主要功
分布式系统设计实践 电子书
全面梳理分布式技术,详解原理及应用,研究大型系统案例。
Python核心技术实战详解 电子书
1.内容讲解深入。 本书对Python的核心知识进行了深入剖析,循序渐进地讲解了核心功能模块的开发技术,帮助读者快速步入Python开发高手之列。 2.提供更为广泛的解决方案。 本书深入讲解了10个不同的主题模块,每一个主题涵盖了特定应用开发领域。在书中不仅给出了案例讲解,还包含了更多的拓展知识,能够帮助读者使用Python 开发各种类型的应用程序。 3.通过网站论坛形成互帮互学的朋友圈。 为了方便给读者答疑,特提供了网站论坛等支持,并且随时在线与读者互动,让大家在互学互帮中形成一个良好的学习编程的氛围。
递归算法与项目实战 电子书
本书凝聚了作者多年的Python教学经验,内容通俗易懂,旨在剖析递归及其本质。本书不仅结合Python程序和JavaScript程序讲述编程的基础知识,还讲述如何利用递归算法计算阶乘,计算斐波那契数列,遍历树,求解迷宫问题,实现二分搜索,完成快速排序和归并排序,计算大整数乘法,计算排列和组合,解决八皇后问题等。本书不仅适合开发人员阅读,还可供计算机相关专业的师生参考。
Spark分布式处理实战 电子书
本书以项目实践作为主线,结合必需的理论知识,以任务的形式进行内容设计,每个任务都包含任务描述及任务实施的步骤,读者按照实施步骤进行操作就可以完成相应的学习任务,从而不断提升项目实践能力。本书主要内容涉及Spark基本原理、基于IDEA搭建Spark开发环境、RDD基本原理、SparkSQL基本操作流程、电商业务系统的基本流程、电商用户行为分析的基本指标以及分析过程、通过不同的维度对销售数据进行分析