15 认识存储 | 青训营笔记

60 阅读3分钟

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

数据持久化

  • 数据流动:用户注册数据→后端服务器→数据库(数据的持久化)↔其他系统(如一些非存储系统)
  • 如何持久化:校验数据的合法性(如验证数据是否存在)→修改内存(用高效的数据结构组织数据)→写入存储介质(以寿命和性能友好的方式写入硬件)

存储系统概览

  • 存储系统

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

  • 存储系统特点

    • 作为后端软件的底座,性能比较敏感
    • 存储系统软件架构,容易受硬件影响→会根据存储硬件对存储系统进行改进
    • 存储系统代码,既“简单”又“复杂”
  • 存储器层级结构

    image.png

  • 单机存储栈

    缓存很重要,贯穿整个存储体系;

    拷贝很昂贵,应该尽量减少;

    硬件设备五花八门,需要有抽象统一的接入层。

  • RAID技术

    • Redundant Array of Inexpensive Disks

    • 出现背景:

      • 单块大容量磁盘的价格 > 多块小容量磁盘
      • 单块磁盘的写入性能 < 多块磁盘的并发写入性能
      • 单块磁盘的容错能力有限,不够安全
    • RAID0:追求性能,没有额外的容错设计

    • RAID1:追求容错,空间利用率仅50%

    • RAID0+RAID1:结合RAID0,RAID1,空间利用率50%,但结合了RAID0的并发,提高了性能

数据库系统概览

  • 关系=集合=任意元素组成的若干有序偶对,即反映事物间的关联

  • 关系型数据库

    • 特点

      • 是存储系统
      • 结构化数据友好
      • 支持事务(ACID),Atomicity(原子性)、Consistensy(一致性)、Isolation(隔离性)、Durability(持久性)
        • Atomicity(原子性)是指操作必须是一个不可分割的整体,或者在操作完成之前,不能被任何外部因素打断。这就意味着,当数据库正在执行某个操作时,不可能出现状态不一致的情况。Consistensy(一致性)指的是在一个数据库事务完成后,数据库中的所有数据都处于一致的状态,即使发生了故障,系统也能保持一致性。Isolation(隔离性)指的是在一个事务执行过程中,它的操作不会被其他事务的操作所影响,这就意味着多个事务可以同时进行,而不会互相影响。最后,Durability(持久性)指的是一个事务完成后,它所做的更改对系统来说是持久的,即使发生故障也不会丢失它所做的更改。
      • 支持复杂查询语言(如SQL)
  • 非关系型数据库

    • 特点

      • 不要求严格的结构化
      • 半结构化数据友好
      • 可能支持事务(ACID)
      • 可能支持复杂查询语言
  • 数据库vs经典存储

    • 写入关系型数据库,以表形式管理 vs 写入文件自行定义管理结构
    • 支持事务(ACID) vs 不支持事务
    • 复杂查询灵活简洁 vs 复杂查询僵化复杂
  • 数据库使用方式

    • Everything is Domain Specific Language → maybe SQL?