这是我参与「第五届青训营 」笔记创作活动的第12天。
引言
今天的课程中老师首先从一条数据的产生(用户在客户端),流动到服务端(以结构化的形式),存在内存中,最后持久化到数据库中的全生命周期的例子,引出了存储系统-数据库。
一、本堂课重点内容
本堂课的知识点
- 存储系统
- 数据库系统
- 主流产品分析
- 新技术演进
二、详细知识点介绍
什么是存储系统?
老师从开发者的角度回答:一个提供读写、控制类接口,能够安全有效地把数据持久化的软件
- 分类
存储介质分类可看成一个金字塔,越往上容量越小,读写速度越快,价格越昂贵
如磁盘-> 内存-> cache ->寄存器
- 存储系统-RAID技术
RAID ( Redundant Array of Independent Disks )独立磁盘冗余阵列 / 磁盘阵列,利用多个独立的磁盘组成在一起形成一个大的磁盘组,从而实现比单块磁盘更好的存储性能和更高的可靠性。
如采用多个磁盘并发写从而比在一个大容量磁盘写的速度更快
RAID可以分很多级别,如:
RAID 0:多块磁盘简单组合,数据条带化存储,提高磁盘带宽,没有额外的容错设计
RAID 1:一块磁盘对应一块额外镜像盘,真实空间利用率50%
RAID 0+1:结合了RAID 0 和 RAID 1
数据库
数据库可分为关系型数据库和非关系型数据库
关系(Relation)是什么?
关系 = 集合 = 任意元素组成的若干有序偶对反映了事物间的关系
SQL = 一种DSL,方便人类阅读的关系代数表达形式
关系型数据库是存储系统,对结构化数据友好,支持事务,满足ACID,支持复杂的查询语言SQL。
非关系型数据库也是存储系统,但一般不要求严格的格式化
主流产品剖析
单机存储
- 本地文件系统
在Linux系统中有一句名言:一切皆文件
- key-value存储
分布式存储
在单机存储基础上实现了分布式协议,涉及大量网络交互
- HDFS
HDFS堪称大数据时代的基石
核心特点:支持海量数据存储,高容错性,弱POSIX语义
- Ceph
核心特点:一套系统支持对象接口,块接口,文件接口,但一切皆对象,数据写入采用主备复制模型 ,数据分布模型采用CRUSH算法(HASH+权重+随机标签)
关系型数据库代表:: MySQL,Oracle,PostgreSQL
非关系型数据库代表:Redis,MongoDB,Elasticsearch
新技术演进
- 软件架构变更
ByPass OS Kernal
-
AI增强
-
新硬件革命
RDMA网络
Persistent Memory
可编程交换机
CPU/GPU/DPU
三、实践练习例子
待补充
四、课后个人总结
今天这堂课程学习了存储系统的一个发展,学习到各种不同类型的数据库,单机架构,以及如何设计分布式架构数据库,了解到目前主流的关系型数据库和非关系型数据库。后期学习自己设计一些数据库,如K-V型数据库。
五、引用参考
[1] 青训营课程资料 【后端专场 学习资料六】第五届字节跳动青训营 - 掘金 (juejin.cn)