“这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天”
1 经典案例 - 数据的流动
1.1 数据持久化
2 存储 & 数据库简介
2.1 存储系统
2.1.1 存储系统-系统概览
存储系统: 一个提供了读写、控制接口,能够安全有效的把数据持久化的软件,可以称为存储系统;
2.1.2 存储系统-系统特点
- 为了逻辑简单而简单,为了安全等问题复杂;
2.1.3 存储器层层级结构
2.1.4 存储系统-数据怎么从应用到存储介质
- 之前是硬件,现在讨论软件框架设计;
- 1)【缓存】很重要
- 观察图,在user data和Disk之间,存在很多缓存cache和buffer;
- 用处:匹配读写处理速度,格式,cache帮助用硬件友好的方式跟硬件打交道;buffer在软件层匹配不同层间的访问粒度;
- 2)【拷贝很昂贵】
- 拷贝消耗CPU,关键路径上尽量减少拷贝;
- 3)抽象统一的接口
- 应对不断变化的硬件设备,不然每次更换硬件都要重建软件框架;
2.1.5 存储系统-RAID技术
2.2 数据库
2.2.1 数据库--概览
- SQL:一种DSL(Domain Specific Language),领域专用语言
- 方便人类阅读的关系代数表达形式;
2.2.2 数据库-关系型数据库特点
关系型数据库是存储系统,但是存储之外,发展出其他能力;
- 1)为结构化数据而生;
- 2)支持事务(ACID);
- 3)支持复杂查询语言;SQL
2.2.3 数据库-非关系型数据库特点
不要求严格结构化数据
- 1)半结构化数据友好;
- 2)可能支持事务(ACID);
- 3)可能支持复杂度查询语言;SQL
2.3 数据库 VS 经典存储
2.3.1 结构化数据管理
- 使用关系型数据库,很自然的以表形式管理;使用SQL计算数据插入更新,十分方便;
- 对于经典存储(例如文件系统),就自行定义管理结构;与byte地址打交道,计算偏移地址;
2.3.2 事务能力
关系型数据库最强一点就是支持事务;