存储和数据库
本章介绍了存储结构与常见的数据库及其架构,还介绍了存储方面的新技术演进方向;对于数据库很感兴趣的同学可以去看看CMU 15-445的课程,继续深入数据库相关的理论知识,也可以看看开源数据库的源码继续学习数据库的相关内容。
认识存储和数据库
-
字节内部数据库veDB
-
经典案例
- 一条数据从产生,到数据流动,最后持久化的全生命周期
- 数据库的持久化(除了性能之外,还需要注意硬件的寿命)
- 潜在问题
-
存储&数据库简介
- 什么是存储系统;存储系统的特点;存储器层次结构(经典) ;persistent memory;数据怎么从应用到存储介质;RAID技术
- 什么是数据库系统:关系型数据库/非关系型数据库;关系型数据库是存储系统,但是在存储之外又发展出其他能力;
- 数据库vs经典存储
- 事务:ACID
-
主流产品剖析
-
单机存储
- 本地文件系统:一切皆文件;Index Node和Directory Entry
- key-value存储:常用数据结构——LSM-Tree,某种程度上牺牲读性能,追求写入性能,RocksDB(LevelDB);数据结构分为两部分——内存:MemTable(追加,满了之后写入immutable)、Immutable MemTable;磁盘:WAL和Level 0 SSTable、Leve 1 ……然后再合并
-
分布式存储:单机存储的基础上实现分布式协议,涉及大量网络交互
- 分布式文件系统:HDFS,大数据时代的基石,GFS的开源实现,分为Management Node和Storage Node;在此之上mapreduce去计算
- 分布式对象存储:Ceph,万金油,一切皆对象,数据写入采用主备复制,数据分布模型采用CRUSH算法(hash+权重+随机抽签)
-
单机关系型数据库:Oracle、MySQL、postgreSQL
-
单机非关系型数据库:MongoDB、Redis、ElasticSearch
-
分布式数据库:容量(存储节点池化,动态扩缩容)、弹性(扩缩容)、性价比(CPU和磁盘容量)
-
-
新技术演进
-
软件架构改变:Bypass OS kernel;SPDK:Storage Performance Development Kit,用户态访问磁盘——避免syscall的性能损耗、中断改为轮询、无锁数据结构
-
AI增强:智能存储格式转换;AI决策
-
新硬件革命:存储介质、计算单元、网络硬件
- RDMA网络;kernel bypass
- Persistent Memory
- 可编程交换机
- CPU/GPU/DPU
-