存储系统:
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以成为存储系统
要素:用户user 存储medium 内存memory 网络network
三个特点:
- 作为后端软件的底座,性能敏感
- 存储系统软件架构,容易受硬件影响——硬件发生变革,软件
- 存储系统代码,既“简单”又”复杂“
软件实现cache,帮助我们用硬件友好的方式与硬件打交道;软件分层,不同层级之间的软件,访问力度也是不同的。
存储系统数据写入读取链路特点:
- buffer,cache在跨软件层的地方,以软件层或硬件层友好的方式对其他层级的软件和硬件进行交互。
- 拷贝非常昂贵:拷贝消耗CPU
- 硬件设备五花八门的时代,需要有抽象统一的接入层
RAID(Redundant Array of Inexpensive Disks)技术使用
RAID出现的背景:
单块大容量磁盘的价格>多块小容量磁盘
单块磁盘的写入性能<多块磁盘的并发写入性能
单块磁盘的容错能力有限,不够安全
类型:
RAID 0
- 多块磁盘简单组合
- 数据条带化存储,提高磁盘带宽
- 没有额外的容错设计
RAID 1
- 一块磁盘对应一块额外镜像盘
- 真实空间利用率仅50%
- 容错能力强
RAID 0+1
- 结合了RAID 0和RAID 1
- 真实空间利用率仅50%
- 容错能力强,写入带宽好
数据库
关系=集合=任何元素组成的若干有序偶对 反应了事物之间的关系
- 关系型数据库是存储系统,但在存储之外,又发展出其它能力:结构化数据友好,支持事务,支持复杂查询语言SQL
- 非关系型数据库也是存储系统,但是一般不要求严格的结构化:半结构化数据友好,可能支持事务,可能支持复杂查询语言
事务具有
Atomicity,事务内的操作要么全做,要么不做
Consistency,事务执行前后,数据状态是一致的
Isolation,可以隔离多个并发事务,避免影响
Durability,事务一旦提交成功,数据保证持久性
数据库SQL支持
操作数据时:Insert,Update,Select,Delete,Where子句,GroupBy,OrderBy...
要对数据定义做修改时:Create user,Create database,Create table,Alter table...