这是我参与「第五届青训营 」笔记创作活动的第3天
引入-数据生命周期
数据是怎么产生,在后端系统里怎么流通,最后怎么写入到存储/数据库系统(持久化)。
数据库持久化数据涉及的操作:
注意,通常所说的“数据库”完整来说是“数据库管理系统”,即DBMS
存储系统 & 数据库简介
-
存储系统概览
-
存储系统的定义
-
- 一个提供读写、控制类接口,能够安全有效地把数据持久化的软件;
- 涉及了用户、介质、内存、网络
-
-
存储系统特点
- 性能敏感、代码既简单(IO)又复杂(非IO路径和IO的错误异常处理分支)、架构易受硬件的影响
-
存储器层级结构
-
单机存储栈——数据怎么从应用到存储介质(软件视角)
-
RAID技术
-
-
数据库系统概览
-
关系Relation、关系代数、SQL
-
数据库系统分类
-
关系型数据库:关系型数据库是存储系统,但是在存储之外又发展出了其他能力
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语言(SQL)
-
非关系型数据库:也是存储系统,但一般不要求严格的结构化
- 半结构化数据友好
- 可能支持事务
- 可能支持复杂查询语言
-
-
数据库使用方式
-
关系型数据库领域的DSL(Domain Specific Language),SQL占有统治地位
-
-
数据库 vs 经典存储
-
结构化数据管理
-
事务能力:数据库支持的事务有ACID的优越性
-
复杂查询能力
-
主流产品剖析
-
单机存储产品
-
单机存储:单个计算机节点上的存储软件系统,一般不涉及网络交互
-
单机本地文件系统
- 典型案例:Linux文件系统
-
单机key-value存储
-
-
分布式存储产品
-
分布式存储:在单机存储基础上实现了分布式协议,涉及了大量的网络交互
-
分布式文件系统:HDFS
-
分布式对象存储系统:Ceph
-
-
单机数据库产品
-
单个计算机节点上的数据库系统,事务在单机内执行,也可能通过网络交互实现分布式事务
-
关系型数据库 —— PG、MySQL
-
非关系型数据库 —— ES、MongoDB、Redis
-
Elasticsearch使用案例
- 支持模糊搜索,内嵌关联度算法
-
-
分布式数据库产品
-
单机数据库面对的问题与挑战
- 容量、弹性、性价比
-
解决方案
- 存储节点池化,动态扩缩容
-
More to do
- 多写、内存弹性、分布式事务优化
-
新技术演进
-
软件架构变更:SPDK
- 现有的存储和数据库软件强依赖于操作系统内核的链路
-
人工智能增强
- 如:数据存储格式转换
-
新硬件加速:存储介质、计算单元、网络硬件的变更