认识存储的本质 - 状态| 青训营笔记

56 阅读3分钟

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

引入-数据生命周期

数据是怎么产生,在后端系统里怎么流通,最后怎么写入到存储/数据库系统(持久化)。

数据库持久化数据涉及的操作:

注意,通常所说的“数据库”完整来说是“数据库管理系统”,即DBMS

存储系统 & 数据库简介

  • 存储系统概览

    • 存储系统的定义

        1.     一个提供读写、控制类接口,能够安全有效地把数据持久化的软件;
      •     涉及了用户、介质、内存、网络
    • 存储系统特点

      •     性能敏感、代码既简单(IO)又复杂(非IO路径和IO的错误异常处理分支)、架构易受硬件的影响
    • 存储器层级结构

    • 单机存储栈——数据怎么从应用到存储介质(软件视角)

    • RAID技术

  • 数据库系统概览

    • 关系Relation、关系代数、SQL

    • 数据库系统分类

      • 关系型数据库:关系型数据库是存储系统,但是在存储之外又发展出了其他能力

        • 结构化数据友好
        • 支持事务(ACID)
        • 支持复杂查询语言(SQL)
      • 非关系型数据库:也是存储系统,但一般不要求严格的结构化

        • 半结构化数据友好
        • 可能支持事务
        • 可能支持复杂查询语言
    • 数据库使用方式

    •   关系型数据库领域的DSL(Domain Specific Language),SQL占有统治地位

  • 数据库 vs 经典存储

    • 结构化数据管理

    • 事务能力:数据库支持的事务有ACID的优越性

    • 复杂查询能力

主流产品剖析

  • 单机存储产品

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

    • 单机本地文件系统

      •     典型案例:Linux文件系统
    • 单机key-value存储

  • 分布式存储产品

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

    • 分布式文件系统:HDFS

    • 分布式对象存储系统:Ceph

  • 单机数据库产品

    •   单个计算机节点上的数据库系统,事务在单机内执行,也可能通过网络交互实现分布式事务

    • 关系型数据库 —— PG、MySQL

    • 非关系型数据库 —— ES、MongoDB、Redis

    • Elasticsearch使用案例

      •     支持模糊搜索,内嵌关联度算法
  • 分布式数据库产品

    • 单机数据库面对的问题与挑战

      •     容量、弹性、性价比
    • 解决方案

      •     存储节点池化,动态扩缩容
    • More to do

      •   多写、内存弹性、分布式事务优化

新技术演进

  • 软件架构变更:SPDK

    •   现有的存储和数据库软件强依赖于操作系统内核的链路
  • 人工智能增强

    •   如:数据存储格式转换
  • 新硬件加速:存储介质、计算单元、网络硬件的变更

    • image.png