存储系统和数据库|青训营笔记

102 阅读2分钟

存储系统

  • 一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件

存储系统的特点

  • 作为后端软件的底座,性能敏感
  • 存储系统软件架构,容易受硬件影响
  • 存储系统代码,既“简单”又“复杂”

存储系统——RAID技术

  • scss
  • R(edundant)A(rray)ofI(nexpensive)D(isks)

RAID出现的背景

  • 单块大容量磁盘的价格>多块小容量磁盘
  • 单块磁盘的写入性能<多块磁盘的并发写入性能
  • 单块磁盘的容错能力有限,不够安全

数据库

关系型数据库

  • 关系型数据库是存储系统,但是在存储之外,又发展出其他能力:结构数据友好,支持事务,支持复杂查询语言

非关系型数据库

  • 非关系型数据库也是存储系统,但是一般不要求严格的结构化。
  • 半结构化数据友好,可能支持的事务,可能支持复杂查询语言

事务特性

  • A(tomicity):事务内的操作要么全做,要么不做
  • C(onsistency):事务执行前后,数据状态是一致的
  • I(solation):可以隔离多个并发事务,避免影响
  • D(urability):事务一旦提交成功,数据保证持久性

存储

  • 单机存储=单个计算机节点上的存储系统,一般不涉及网络交互
  • 分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互
  • 单机数据库=单个计算机节点上的数据库系统,事务在单机内执行,也可能通过网络交互实现分布式事务
  • 分布式数据库=存储节点池化,动态扩缩容

新技术演进——SPDK

  • 避免syscall带来的性能损耗,直接从用户态访问磁盘
  • 磁盘性能提高后,中断次数随之上升,不利于IO性能
  • SPDK poller可以绑定特定的cpu核不断轮询,减少cs,提高性能
  • 无锁数据结构:使用Lock-free queue,降低并发时的同步开销