这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
什么是存储系统?
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。
存储系统的提点
- 作为后端软件的底座,性能敏感。
- 存储系统软件架构,容易受硬件影响。
- 存储系统代码,既“简单”又复杂。
存储系统-RAID技术
RAID出现的背景
- 单块大容量磁盘的价格>多块小容量磁盘。
- 单块磁盘的写入性能<多块磁盘的并发写入性能。
- 单块磁盘的容错能力有限,不够安全。
RAID 0+1
- 结合了RAID 0 和RAID 1
- 真实空间利用率仅50%
- 容错能力强,写入带宽好
关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力。
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语言
非关系型数据库特点
非关系型数据库也是存储系统,但是一般不要求严格的结构化。
- 半结构化数据友好
- 可能支持事务(ACID)
- 可能支持复杂查询语言
事务具有
- A(tomicity),事务内的操作要么全做,要么不做。
- C(onsistency),事务执行前后,数据状态是一致的
- I(solation),可以隔离多个并发事务,避免影响
- D(urability),事务一旦提交成功,数据保证持久性
单机存储
单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互。
分布式存储
分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互。
单机数据库
单机数据库=单个计算机节点上的数据库系统事务在单机内执行,也可能通过网络交互实现分布式事务。
非关系型数据库
- MongoDB
- Redis
- Elasticsearch
总结
本节课程学到了存储系统:块存储、文件存储、对象存储、key-value存储。数据库系统分为关系型数据库、非关系型数据库。分布式架构有数据分布策略、数据复制协议、分布式事务算法。也了解到了在存储、数据库领域,硬件反推软件变革十分常见。