这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
存储系统
存储系统 -系统概览
什么是存储系统:
一个提供了读写、控制类接口,能够安全有效的把数据持久化的软件,就可以称为存储系统。
存储系统-系统特点
-
作为后端软件的底座,性能敏感
-
存储系统软件架构,容易受硬件影响
-
存储系统代码,既简单又复杂。(不能有太多分支)
存储系统 -数据怎么从应用到存储介质
- 缓存很重要,贯穿整个存储体系
- 拷贝很昂贵,应该尽量减少
- 硬件设备五花八门,需要有抽象统一的接入层
存储系统-RAID技术
单机存储系统做到高性能/高性价比/高可靠性
数据库
数据库 -关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力。
- 对结构化数据友好
- 支持事物
- 支持复杂查询语言
非关系型数据库也是存储系统,但是一般不要求严格的结构化
- 半结构化数据友好
- 可能支持事物
- 可能支持复杂查询语言
数据库 vs经典存储
数据库 vs经典存储-事物能力
凸显出数据库支持事务的优越性
事务具有:
- A,事务内的操作要么全做,要么不做
- C,事务执行前后,数据状态是一致的
- I,可以隔离多个并发事务,避免影响
- D,事务一旦提交成功,数据保证持久性
数据库 vs经典存储 -复杂查询能力
主流产品剖析
单机存储
单个计算机节点上的存储软件系统,一般不涉及网络交互
分布式存储 -HDFS
- 支持海量数据存储
- 高容错性
- 弱POSIX语义
- 使用普通x86服务器,性价比高。
分布式存储 -Ceph
- 一套系统支持对象接口、块接口、文件接口,但是一切接对象
- 数据写入采用主备复制模型
- 数据分布模型采用CRUSH算法。
单机关系型数据库
商业产品Oracle称王,开源产品Mysql &PostgreSQL称霸
单机非关系型数据库
MongoDB、Redis、Elastricsearch三足鼎立
分布式数据库
- 解决容量问题
- 解决弹性问题
- 解决性价比问题