这是我参与「第五届青训营 」笔记创作活动的第15天
前言
本次文章我们介绍了存储系统和数据库系统的特点,对主流产品进行解析,对存储和数据库相结合的新技术演进的方向也做了一定的介绍。
经典案例
- 一条数据从产生,到数据流动,最后持久化的全生命周期
数据的产生
- 小明注册一个账号,填写好了数据,按下了注册按钮后,数据就从无到有地产生了,并十分快速的向后端服务器飞奔而去。
数据的流动
- 数据从后端服务器存储到数据库后,就开始了持久化,并且其他系统也能访问到该数据
数据的持久化
- 真正存储到硬件上,才真正做到数据的持久化
潜在的问题
存储&数据库简介
存储系统
-
什么是存储系统
- 一个提供了读写、控制类接口,能够安全有效的把数据持久化的软件,就可以称为存储系统
-
系统特点
- 作为后端软件的底座,性能必须顶级
- 存储系统软件架构,容易受硬件影响
- 存储系统代码,既简单又复杂
-
存储器层级结构
-
数据怎么从应用到存储介质
- 缓存很重要,贯穿整个存储体系
- 拷贝很昂贵,需尽量减少
- 硬件设备五花八门,需要统一的接入口
- RAID技术
- RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。
数据库
- 关系(Relation)又是什么?
-
关系型数据库特点
- 关系型数据库是存储系统,但在存储之外,又有其他功能
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语言
- 关系型数据库是存储系统,但在存储之外,又有其他功能
-
非关系型数据库特点
- 非关系型数据库也是存储系统,但是一般不要求严格的结构化
- 半结构化数据友好
- 可能支持事务(ACID)
- 可能支持复杂查询语言
- 非关系型数据库也是存储系统,但是一般不要求严格的结构化
数据库vs经典存储
- 结构化数据管理
-
事务能力
-
原子性(Atomicity):事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。
-
一致性(Consistency):数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
-
隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
-
持久性(Durability):在事务完成以后,该事务所对数据库所做的更改便持久的保存在数据库之中,并不会被回滚。
-
-
复杂查询能力
数据库使用方式
主流产品剖析
单机存储
-
单机存储 = 单个计算机节点上的存储软件系统,一般不涉及网络交互
-
本地文件系统
- Linux经典哲学:一切皆文件
- key-value存储
- key是你的名字,value是你的内涵
分布式存储
-
分布式存储= 在单机存储基础上实现了分布式协议,涉及大量网络交互
-
HDFS
- 大数据时代的基石
- 核心特点
- 支持海量存储
- 高容错性
- 弱POSIX语义
- 使用普通x86服务器,性价比高
-
Ceph
-
开源分布式存储系统里的万金油
-
核心特点
-
一套系统支持对象接口、块接口、文件接口,但是一切皆对象
-
数据写入采用主备复制模型
-
数据分布模型采用CRUSH(HASH+权重+随机抽签)算法
单机数据库
-
单机数据库=单个计算机节点上的数据库系统
- 事务在单机内执行,也可能通过网络交互实现分布式事务
-
关系型数据库
- 商业产品Oracle称王,开源产品MySQL&PostgreSQL称霸
非关系型数据库
- MongoDB、Redis、Elasticerch三足鼎立
- 关系型数据库一般直接用SQL交互,而非关系型数据库交互方式互不相同
- 非关系型数据库的数据结构千奇百怪,没有关系约束后,sheme相对灵活
- 不管是否关系型数据库,大家都在尝试支持SQL(子集)和“事务”
分布式数据库
-
单机数据库有哪些问题,需要我们引入分布式架构来解决?
- 容量
- 弹性
- 性价比
-
解决容量问题
- 解决弹性问题
- 解决性价比问题
- More to Do
新技术演进
概览
- 软件架构
- Bypass OS kernel
- AI增强
- 智能存储格式转换
- 新硬件革命
- 存储介质变更
- 计算单元变更
- 网络硬件变更
SPDK(Storage Performance Development Kit)
- Bypass OS kernel已经成为一种趋势
- Kernel Space -> User Space
- 避免syscall带来的性能损耗,直接从用户态访问磁盘
- 中断 -> 轮询
- 磁盘性能提高后,中断次数随之上升不利于IO性能
- SPDK poller 可以绑定特定的cpu核不断轮询,减少cs,提高性能
- 无锁数据结构
- 使用Lock-free queuem,降低并发时的同步开销
- Kernel Space -> User Space
AI& Storage
- AI领域相关技术,如Machine Learning在很多领域:如推荐、风控、视觉领域证明了有效性
- 在Storage领域,AI能给我们带来什么改变?
- 行列混存
高性能硬件
- RDMA网络
- Persistent Memory
- 可编程交换机
- CPU/GPU/DPU
引用
- 字节内部课-存储与数据库