存储的本质 | 青训营笔记

47 阅读2分钟

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

一、本堂课具体内容

  • 储存&数据库简介
  • 主流产品剖析
  • 新技术演进

二、详细知识点介绍:

  • 储存&数据库简介

    • 系统概览

      Q:什么是存储系统?

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

    • 系统特点

      1. 作为后端软件的底座,性能敏感
      2. 存储系统软件架构,容易受硬件影响
      3. 存储系统代码,既“简单”又“复杂”
    • 储存器层级结构

      image.png

    • RAID

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

      A: R(edundant)A(rray) of l(nexpensive) D(isks)

      RAID出现的背景:

      1. 单块大容量磁盘的价格>多块小容量磁盘
      2. 单块磁盘的写入性能<多块磁盘的并发写入性能
      3. 单块磁盘的容错能力有限,不够安全
    • 数据库

      • 关系型数据库和非关系型数据库

        关系型数据库是存储系统,但是在存储之外,又发展出其他能力:结构化数据友好、支持事务(ACID)、支持复杂查询语言

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

      • 事务

        1. A(tomicity),事务内的操作要么全做,要么不做

        2. C(onsistency),事务执行前后,数据状态是一致的

        3. l(solation),可以隔离多个并发事务,避免影响

        4. D(urability),事务一旦提交成功,数据保证持久性

  • 主流产品剖析

    • 关系型数据库

      商业产品Oracle称王,开源产品MySQL & PostgresQL称霸

    • 非关系型数据库

      MongoDB、Redis、Elasticsearch三足鼎立

      关系型数据库一般直接使用SQL交互,而非关系型数据库交互方式各不相同

      非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活

      不管是否关系型数据库,大家都在尝试支持SQL(子集)和“事务”