Lesson5 带你认识存储 & 数据库|青训营笔记

40 阅读2分钟

三. 存储数据库

3.1 认识存储与数据库

3.1.1 初识

案例:数据产生(用户注册输入的信息)-> 后端服务器 -> 数据库

持久化过程:检验数据合法性 -> 修改内存 -> 写入存储介质

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

系统特点:性能敏感、易受硬件影响、代码既简单又复杂(IO代码简洁,错误处理复杂)

缓存 很重要,贯穿整个存储体系。拷贝 很昂贵,要尽量减少。

3.1.2 RAID技术

单机存储系统如何:高性能?高性价比?高可靠性?

Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列)

RAID0:多块磁盘简单组合,提高磁盘带宽,没有额外容错设计

RAID1:一块磁盘对应一块额外镜像盘,真实利用率50%

也可以RAID0+RAID1,结合各种方式的优点

3.1.3 数据库

关系型数据库、非关系型数据库

关系:反应了事物间的关系

SQL:DSL,方便人类阅读的关系代数表达式

ACID特性:原子性、一致性、隔离性、持久性

3.1.4 主流产品剖析

  • 单机存储

    单个计算机节点上的存储软件系统,不涉及网络交互。

    例如Linux中一切皆文件,两大数据结构Index Node & Directory Entry

  • key-value

    常见使用方式:put(k, v) & get(k)

    常见数据结构:LSM-Tree,牺牲读性能,追求写入性能

  • 分布式存储

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

    HDFS(一切皆文件)、Ceph(一切皆对象)

  • 单机数据库-关系型数据库

    MySQL & PostgreSQL

  • 非关系型数据库

    MongoDB、Redis、ElasticSearch

  • 分布式数据库解决问题1:容量问题

    单点容量有限,受硬件限制。将存储节点池化,动态扩缩容。

  • 分布式数据库解决问题2:弹性问题

  • 分布式数据库解决问题3:性价比问题

3.1.5 存储与数据库的新技术演进

概述:

  • 软件架构变更:Bypass OS kernel
  • AI增强:智能存储格式转换
  • 硬件革命:存储介质、计算单元、网络硬件变更

详细来说:

  • SPDK

    避免syscall带来性能损耗,用户态访问磁盘

    轮询代替中断,提高性能

    使用无锁数据结构

  • AI & Storage

    行存、列存、行列混存(AI决策)

  • 高性能硬件

    RDMA网络、介于SSD和Memory间的Persistent Memory、可编程交换机、CPU/GPU/DPU