这是我参与「第五届青训营 」笔记创作活动的第11天。
一、本堂课重点内容:
首先介绍一条数据从产生,到数据流动,最后持久化的生命周期,然后介绍数据库和存储系统背景知识,接着介绍主流的存储和数据库系统框架,经典产品剖析,最后介绍老系统结合新技术,如何持续演进走向新生。
二、详细知识点介绍:
(1)经典案例
数据的流动:一条用户数据,后端服务器,数据库,其他系统。 数据的持久化过程:校验数据的合法性,修改内存,写入存储介质。
(2)存储和数据库简介
一个提供了读写、控制类接口,能够安全有效的把数据持久化的软件,就可以成为存储系统。
关系是任意元素组成的若干有序偶对反映了事物间的关系。SQL方便人类阅读的关系代数表达形式。
关系型数据库是存储系统,但是在存储之外,又发展出其他能力。结构化数据友好,支持事务,支持复杂查询语言。
数据库:结构化数据管理,事务能力。
atomicity:事务内的操作要么全做,要么不做。
consistency:事务执行前后,数据状态是一致的。
isolation:可以隔离多个并发事务,避免影响。
durability:事务一旦提交成功,数据保证持久性。
(3)主流产品剖析
单机存储:单个计算机节点上的存储软件系统,一般不涉及网络交互。
分布式存储:在单机存储基础上实现了分布式协议,涉及大量网络交互。
单机数据库:单个计算机节点上的数据库系统,事务在单机内执行,也可能通过网络交互实现分布式事务。
关系型数据库:是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。
非关系型数据库:意思是不仅仅是SQL,是非关系型数据库的总称。
(4)新技术演进
SPDK: storage performance development kit。避免syscall带来的性能损耗,直接从用户态访问磁盘。磁盘性能提高后,中断次数随之上升,不利于IO性能,SPDK poller可以绑定特定的CPU核不断轮询,减少cs,提高性能。使用Lock-free queue,降低并发时的同步开销。
AI&Storage AI领域相关技术,如Machine Learning在很多领域:如推荐、风控、视觉领域证明了有效性。
高性能硬件:RDMA网络,Persistent Memory,可编程交换机,CPU/GPU/DPU。
三、课后个人总结:
目前最常用的数据库系统是MySQL。对分布式数据库的最终目标,是“让一个分布式数据库看起来不像是一个分布式数据库”。