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

141 阅读4分钟

一、经典案例

1.1 数据的产生

用户输入信息,向服务器发送时,数据便产生了。

image.png

1.2 数据的流动

数据常以json格式由终端发出,经过后端服务器的处理,被存储在数据库中完成持久化,数据库再将数据发送给其他系统。

image.png

1.3 数据的持久化

数据持久化主要分为三个步骤:

  1. 检验数据的合法性(“小明”是否已存在?)

  2. 修改内存(用高效的数据结构组织数据)

  3. 写入存储介质(用综合性能和寿命的方式把数据写入硬件)

1.4 潜在问题

  • 数据库怎么保证数据不会丢失?

  • 数据库怎么处理多人同时修改的场景?

  • 数据能存到其他非数据库的存储系统里吗?

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

  • 数据库应该怎么操作?

二、存储 & 数据库

2.1 存储系统

存储系统是指提供了读写、控制类接口,能够安全有效地把数据持久化的软件。

image.png

2.2 存储系统的特点

  • 性能敏感,存储系统是后端软件的底座

  • 易受到硬件影响,由存储系统软件架构决定

  • 代码形式简单内部复杂,源自于存储系统代码设计

2.3 存储器层次结构

image.png

2.4 存储器->(数据)->应用

  • 缓存是核心,贯穿整个存储体系,既能匹配速度,又能扩大容量

  • 拷贝的代价是昂贵的,应该尽量避免对数据进行拷贝操作

  • 硬件设备是多种多样的,需要有统一抽象的接入层

image.png

2.5 RAID

一种实现了兼具高性能、高性价比和高可靠性的存储系统设计。

出现背景:

  • 单块大容量磁盘的价格大于多块小容量磁盘的价格

  • 单块磁盘的写入性能小于多块磁盘的并发写入性能

  • 单块磁盘的容错能力有限,安全性不足

RAID 分类:

  • RAID 0 :多块磁盘简单组合,数据条带化存储,无额外容错设计

  • RAID 1 :一对一镜像磁盘,空间利用率较低,容错能力高

  • RAID 2 :结合RAID 0和RAID 1,空间利用率较低,容错能力和写入带宽较好

2.6 数据库

数据库主要分为关系数据库和非关系数据库两类,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

2.7 关系数据库

关系模型起源于集合领域,由关系代数和SQL等工具的出现逐渐完善,最终诞生了关系型数据库。关系数据库对结构化数据友好,支持事务的ACID,支持复杂查询语言SQL。

2.8 非关系数据库

非关系数据库不要求严格的结构化,这样能使其更符合现实数据的存在形式,非关系数据库对半结构化数据友好,可能支持事务的ACID,可能支持复杂的查询语言。

2.9 结构化数据管理

image.png

2.10 事务的ACID

image.png

2.11 SQL

SQL语言简单、便捷,能够以较少的代码量实现较为复杂的功能。

image.png

image.png

三、主流产品剖析

3.1 单机存储

单机存储是指单个计算机节点上的存储软件系统,一般不涉及网络交互,常见的单机存储有本地文件系统和key-value存储。

  • 本地存储系统(以Linux为例):

image.png

  • key-value存储(以RocksDB为例):

image.png

3.2 分布式存储

分布式存储在单机存储的基础上实现了分布式协议,涉及到大量的网络交互,常见的分布式存储有分布式文件系统和分布式对象存储。

  • 分布式文件系统(以HDFS为例):

image.png

  • 分布式对象存储(以Ceph为例):

image.png

3.3 单机数据库

单机数据库是指单个计算机节点上的数据库系统,事务在单机内执行,也可能通过网络交互实现分布式事务,单机数据库有关系数据库和非关系数据库两种。

  • 关系型数据库:

image.png

  • 非关系型数据库:

image.png

image.png

3.4 分布式数据库

单机数据库在容量、弹性和性价比这三个方面的问题越来越严重,分布式数据库的应用一定程度上能解决这三个问题。但在多写、内存弹性和分布式事务优化方面还需要进步。

  • 容量问题:

image.png

  • 弹性问题:

image.png

  • 性价比问题:

image.png

四、新技术演进

数据存储的新技术主要体现在软件架构、AI增强和新硬件革命三个方面。

  • 软件架构变更:

image.png

  • AI 增强:

image.png

  • 新硬件革命:

image.png