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

38 阅读2分钟

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

存储系统

存储系统 -系统概览

什么是存储系统:

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

存储系统-系统特点

  1. 作为后端软件的底座,性能敏感

  2. 存储系统软件架构,容易受硬件影响

  3. 存储系统代码,既简单又复杂。(不能有太多分支)

存储系统 -数据怎么从应用到存储介质

  1. 缓存很重要,贯穿整个存储体系
  2. 拷贝很昂贵,应该尽量减少
  3. 硬件设备五花八门,需要有抽象统一的接入层

存储系统-RAID技术

单机存储系统做到高性能/高性价比/高可靠性

数据库

数据库 -关系型数据库特点

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

  1. 对结构化数据友好
  2. 支持事物
  3. 支持复杂查询语言

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

  1. 半结构化数据友好
  2. 可能支持事物
  3. 可能支持复杂查询语言

数据库 vs经典存储

数据库 vs经典存储-事物能力

凸显出数据库支持事务的优越性

事务具有:

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

数据库 vs经典存储 -复杂查询能力

主流产品剖析

单机存储

单个计算机节点上的存储软件系统,一般不涉及网络交互

分布式存储 -HDFS

  1. 支持海量数据存储
  2. 高容错性
  3. 弱POSIX语义
  4. 使用普通x86服务器,性价比高。

分布式存储 -Ceph

  1. 一套系统支持对象接口、块接口、文件接口,但是一切接对象
  2. 数据写入采用主备复制模型
  3. 数据分布模型采用CRUSH算法。

单机关系型数据库

商业产品Oracle称王,开源产品Mysql &PostgreSQL称霸

单机非关系型数据库

MongoDB、Redis、Elastricsearch三足鼎立

分布式数据库

  1. 解决容量问题
  2. 解决弹性问题
  3. 解决性价比问题