存储和数据库| 青训营笔记

111 阅读3分钟

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

数据库

数据流动: 初始数据 后端服务器 数据库

数据持久化 检验合法性 修改内存 写入存储介质

数据库需要保证的问题:

不丢失,并发,其他类型存储,结构化数据,如何操作?

数据库怎么保证数据不丢?

数据库怎么处理多人同时修改的问题?

为什么用数据库,除了数据库还能存到别的存储系统吗?

数据库只能处理结构化数据吗?

有哪些操作数据库的方式,要用什么编程语言?

存储系统:

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。

数据如何从应用到存储介质:

缓存很重要,同时拷贝要尽量减少

单机存储系统怎么做到高性能/高性价比/高可靠性?

RAID:

RAID出现的背景: 单块大容量藏盘的价格>多块小容量磁盘 单块磁盘的写入性能<多块磁盘的并发写入性能 单块磁盘的容错能力有限,不够安全

数据库和经典存储: 可以实现复杂查询

主流存储系统

单机存储

本地存储,key-value

分布式存储

分布式存储三在单机存储基础上实现了分布式协议,涉及大量网络交互

分布式文件系统,分布式对象存储

Ceph

新技术

软件架构变更,AI增强,新硬件革命

SPDK

RDMA网络

传统的网络协议栈,需要基于多层网络协议处理数据包,存在用 户态&内核态的切换,足够通用但性能不是最佳 RDMA是kernel bypass的流派,不经过传统的网络协议栈,可以把 用户态虚拟内存映射给网卡,减少拷贝开销,减少cu开销

Persistent Memory

在NVMe SSD和Main Memoryl间有一种全新的存储产品:Persistent Memory IO时延介于SSD和Memory之间,约百纳秒量级 可以用作易失性内存(memory mode),也可以用作持久化介质(app-direct)

可编程交换机

P4 Switch,配有编译器、计算单元、DRAM,可以在交换机层对网 络包做计算逻辑。在数据库场景下,可以实现缓存一致性协议等

CPU/GPU/DPU

CPU:从multi-.core走向mamy-core

GPU:强大的算力&越来越大的显存空间

DPU:异构计算,减轻CPU的workload

总结

存储系统

块存储:存储软件栈里的底层系统,接口过于朴素

文件存储:日常使用最广泛的存储系统,接口十分友好,实现五花八门

对象存储:公有云上的王牌产品,immutable语义加持 key-value存储:形式最灵活,存在大量的开源/黑盒产品

数据库系统

关系型数据库:基于关系和关系代数构建的,一般支持事务和SQL访问,使用体验友好的存储产品

非关系型数据库:结构灵活,访问方式灵活,针对不同场景有不同的针对性产品

分布式架构

数据分布策略:决定了数据怎么分布到集群里的多个物理节点,是否均匀,是否能做到高性能 数据复制协议:影响IO路径的性能、机器故障场景的处理方式

分布式事务算法:多个数据库节点协同保障一个事务的ACID特性的算法,通常基于2pc的思想设计