“这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天”
3 主流产品剖析
- 都会涉及到存储系统和数据库相关产品;
- 从单机开始;
3.1 单机存储
3.1.1 单机存储-概览
- 单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互;
3.1.2 单机存储-本地文件系统
linux经典哲学:一切皆文件
- 1)index node:
- 与文件一比一,是一个文件的唯一标识;会被存储到磁盘;inode的总数在格式化文件系统时就固定了;
- 2)directory entry:
- 内存结构,不会持久化存储到磁盘;N:1,硬链接的实现;
- 硬链接:
- 硬链接指经过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件无论是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。通常这种链接就是硬链接。硬链接的做用是容许一个文件拥有多个有效路径名,这样用户就能够创建硬链接到重要文件,以防止“误删”的功能。
- 软链接
- 符号链接(Symbolic Link),也叫软链接。软连接文件有相似于Windows的快捷方式。它其实是一个特殊的文件。在符号链接中,文件其实是一个文本文件,其中包含的有另外一文件的位置信息;
3.1.3 单机存储-key-value存储
3.2 分布式存储
- 分布式存储
- 在单机存储基础上实现了分布式协议,涉及大量网络交互;
3.2.1 分布式存储-HDFS
HDFS:堪称大数据时代的基石
- 先从namenode读取数据物理地址,再从storage node读取数据;
3.2.2 分布式存储-Ceph
单机数据库=单个计算机节点上的数据库系统
3.3 单机关系型数据库
- 用户首先在左侧内存树中更新数据,同时记录一个redo log日志文件(绿色日志);
3.4 单机非关系型数据库
- ES天然能做【模糊搜索】及关联程度
3.5 分布式数据库
3.5.1 分布式数据库-解决容量问题
- 使用存储池,与数据库之间采用网络交互,数据库不需要感知存储池容量及细节,由存储池自身完成动态扩缩容;