存储的本质 | 青训营笔记

44 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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存储。数据库系统分为关系型数据库、非关系型数据库。分布式架构有数据分布策略、数据复制协议、分布式事务算法。也了解到了在存储、数据库领域,硬件反推软件变革十分常见。