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

62 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 11 天

存储系统

什么是存储系统:

  • 一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

同时存储系统有以下特点:

  • 性能敏感
  • 存储系统代码,既简单又复杂。在io路径上代码尽可能简单提高性能,但在错误处理方面要多方面考虑
  • 软件架构容易受硬件影响

数据怎么储存

image-20230212113258539

  • 应用层的缓存很重要,贯穿整个存储体系
  • 拷贝很昂贵,应尽量减少,在关键路径上减少拷贝
  • 硬件设备五花八门,需要有抽象统一的接口

RAID技术

R(edundant) A(rray) of l(nexpensive) D(isks)

Raid出现的背景:

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

而RAID也出现了多种技术方案:

RAID0:(只做了性能优化,没有考虑容错)

  • 多块磁盘简单组合
  • 数据条带化组合,提高磁盘带宽
  • 没有额外容错设计

RAID1:(只做了容错设计,没有性能提升方面的考量)

  • 一块磁盘对应额外的镜像磁盘
  • 真实空间利用率50%
  • 容错能力强

RAID 0+1:

  • 结合了以上两种方案
  • 真实空间利用率50%
  • 容错能力强,写入带宽好

数据库

关系型数据库

关系型数据库是存储系统,但是在存储之外,又发展出其他能力

  • 结构化数据友好
  • 支持事务(ACID)
  • 支持复杂查询语言

非关系型数据库

非关系型数据库也是存储系统,但是一般不要求严格的结构化

  • 半结构(非结构)化数据友好
  • 可能支持事务
  • 可能支持复杂查询语言