这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,本文用于记录在青训营的学习笔记和一些心得。
存储与数据库
1.经典案例
数据流动
用户注册数据-> 后端服务器 -> 数据库 -> 其他系统
数据持久化
校验数据的合法性-> 修改内存 -> 写入存储介质
2.存储系统概述
定义:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
系统特点:
- 作为后端软件的底座,性能敏感
- 存储系统的代码,既“简单”又“复杂”(I\o和非I\o操作)
- 存储系统软件架构,容易受硬件的影响。
RAID可以使单机存储系统做到高性能/高性价比/高可靠性
RAID类型:
RAID 0:
- 多块磁盘简单组合(将数据分段在不同的地方存储)
- 数据条带化存储,提高磁盘带宽
- 没有额外的容错设计
RAID 1:
- 一块磁盘对应一块额外的镜像盘(一块磁盘存储数据后,在另一个盘拷贝存储相同的数据)
- 真实空间的利用率50%
- 容错能力强
结合上述两种类型
RAID 0 + 1
- 容错能力强,写入带宽好
数据库(关系型数据库、非关系型数据库)
关系型数据库是存储系统,但是在存储之外还有结构化数据友好,支持事务,支持复杂查询语言的能力。
非关系型数据库也是存储系统,但是一半不要求严格的结构化。
3.主流产品剖析
3.1单机存储
定义:单个计算机节点上的存储软件系统,一般不涉及网络交互,主要在本地文件系统和Key-Value存储
本地文件系统:
Key-Value存储
3.2分布式存储
定义:在单机存储基础上实现了分布式协议,涉及大量网络交互,主要是分布式文件系统和分布式对象存储。
HDFS
Ceph
3.3单机数据库
定义:单个计算机节点上的数据库系统 or 事务在单机内执行,也可能通过网络交互实现分布式事务。分为关系型数据库和非关系型数据库。
关系型数据库
数据在内存中是树状的,在硬盘里是分布式的。
Page Files:对应内存中的page文件
Redo Log:描述对哪个page进行哪些操作
others:用于存储临时数据
非关系型数据库
各个单机数据库的特点:
3.4从单机到分布式数据库
单机数据库面临的问题和挑战: 容量,弹性,性价比
解决容量问题
解决弹性问题
解决性价比问题