后端基础| 青训营笔记

41 阅读5分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 14 天

经典案例:一条数据从产生,到数据流动,最后持久化的全生命周期
数据的产生: 注册新的账号,填好个人资料,点击注册,然后到后端的服务器
数据的流动:
手机填写资料,产生了结构化数据,然后到后端服务器,接着到数据库系统,如果不做数据的持久化,即所有的服务没有记忆能力,也就是说,每次都需要重新注册。最后也有可能到其他系统
数据的持久化:
检验数据的合法性:“小明”是否已经存在
修改内存:用高效的数据结构组织数据
写入存储介质:以寿命&性能友好的方式写入硬件

image.png

什么是存储系统?
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
用户、介质、内存、网络
系统特点:
①作为后端软件的底座,性能敏感
②存储系统代码,既“简单”又“复杂”:io路径上不能写得很复杂也不能写很多分支。但是错误处理的时候,要考虑到多种情况
③存储系统软件架构,容易受硬件影响:硬件发生变革,软件也需要做出对应的改变
存储器层级结构:

image.png

数据怎么从应用到存储介质

image.png


[缓存]很重要,贯穿整个存储体系
[拷贝]很昂贵,应该尽量减少
硬件设备五花八门,需要有抽象统一的接入层
RAID技术
单机存储系统怎么做到高性能/高性价比/高可靠性
R(edunant)A(rray) of I(nexpensive) D(isks)
RAID出现的背景:
①单块大容量磁盘的价格>多块小容量磁盘
②单块磁盘的写入性能<多块磁盘的并发写入性能
③单块磁盘的容错能力有限,不够安全
RAID0:
多块磁盘简单组合
数据条带化存储,提高磁盘带宽
没有额外的容错设计
RAID 1
一块磁盘对应一块额外镜像盘
真实空间利用率仅50%
容错能力强
RAID 0+ 1
结合了RAID O和RAID 1
真实空间利用率仅50%
容错能力强,写入带宽好
关系型数据库
关系=集合=任何元素组成的若干有序偶对反应了事物间的关系
关系代数=对关系作运算的抽象查询语言(交、并、笛卡尔积......)
SQL=一种DSL=方便人类阅读的关系代数表达形式
特点: ①关系型数据库是存储系统,但是在存储之外,又发展出其他能力 ②结构化数据友好、支持事务(ACID)、SQL(支持复杂查询语言)
非关系型数据库
非关系型数据库也是存储系统,但是一般不要求严格的结构化
半结构化数据友好、可能支持事务(ACID)、可能支持复杂查询语言
数据库VS经典存储——结构化数据管理

image.png


事务能力 凸显出数据库支持[事务]的优越性
事务具有: A(tomicity),事务内的操作要么全做,要么不做C(onsistency),事务执行前后,数据状态是一致的I(solation),可以隔离多个并发事务,避免影响D(urability),事务一旦提交成功,数据保证持久性
数据库VS经典存储——复杂查询能力

image.png

数据库使用方式

image.png

单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互:
本地文件系统
Linux经典哲学:一切皆文件

image.png

key-value存储
世间一切皆key-value——key是你的身份证,value是你的内涵:

image.png SSTable:有序kv集合
合并多层的SSTable然后满足用户的get请求
分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互
分布式文件系统
HDFS:堪称大数据时代的基石
时代背景:专用的高级硬件很贵,同时数据存量很大,要求超高吞吐

image.png 以文件的形式提供给用户
Ceph:开源分布式存储系统里的【万金油】

image.png
数据分布模型:保证数据的可靠性和可用性,怎么进行存储。需要一定的分布模型和分布算法
单机数据库=单个计算机节点上的数据库系统
事务在单机内执行,也可能通过网络交互实现分布式事务
关系型数据库

image.png

image.png

非关系型数据库

image.png

image.png

image.png

分布式对象存储
容量,弹性,性价比
①单点容量有限,受硬件限制 所以推出存储节点池化,动态扩缩容
image.png

image.png

单写VS多写,从磁盘弹性到内存弹性,分布式事务优化

新技术演进
新架构?新硬件?新理论?人工智能?
软件架构变更(Bypass OS kernel)
AI增强(智能存储格式转换)
新硬件革命 (存储介质变更、计算单元变更、网络硬件变更)

image.png

image.png 高性能硬件
01.RDMA网络
传统的网络协议栈,需要基于多层网络协议处理数据包,存在用户态 & 内核态的切换,足够通用但性能不是最佳
RDMA是kernel bypass的流派,不经过传统的网络协议栈,可以把用户态虚拟内存映射给网卡,减少捕贝开销,减少CDU开销
02.Persistent Memory
在NVMe SSD和Main Memory间有一种全新的存储产品 : Persistent Memory。 IO时延介于SSD和Memory之间,约百纳秒量级
可以用作易失性内存 (memory mode),也可以用作持久化介质 (app-direct)
03可编程交换机
P4 Switch(P4交换机),配有编译器、计算单元、DRAM,可以在交换机层对网络包做计算逻辑。在数据库场景下,可以实现缓存一致性协议等
04.CPU/GPU/DPU
cpu : 从multi-core走向many-core
GPU : 强大的算力& 越来越大的显存空间
DPU: 异构计算,减轻CPU的workload

image.png