存储系统与数据库笔记(一) | 青训营

113 阅读4分钟

数据生命周期

数据生命周期是指数据从创建到最终销毁的全过程,涵盖了数据的产生、获取、存储、处理、共享以及最终清理的整个过程。随着服务的不断扩大,业务产生的数据量呈指数级增长,数据已经成为了一种宝贵的资产。不同类型的数据在其生命周期中具有不同的特点和需求。有些数据可能需要长期保存以满足业务需要和合规要求,而另一些数据可能在短时间内失去了价值。了解数据生命周期有助于更好地管理数据,从而优化存储成本、提高数据访问效率,并确保数据的安全性和保护隐私。

  • 数据产生
    • 用户注册
  • 数据流动
    • 结构化的用户注册数据
    • 后端服务
    • 数据库
  • 数据持久化
    • 校验数据合法性
    • 修改内存
    • 写入存储介质

潜在问题:

  • 数据库怎么保证不丢数据
  • 数据库怎么处理多人同时修改
  • 除了数据库还能存到别的存储系统吗
  • 数据库只能处理结构化数据吗
  • 有哪些操作数据库的方式

存储系统简介

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

存储系统是确保数据可靠性、可用性和性能的基石。存储系统不仅是数据的安全保障,也是数据处理和访问的基础设施。

在现代存储系统中,数据按照不同的层级结构进行管理,以满足不同的需求。从高速缓存、主存,到磁盘存储、网络存储等多个层级,存储系统层级结构的设计旨在在不同的数据访问模式下实现最佳性能。高速缓存和主存提供了快速的访问速度,而磁盘存储和网络存储则具备更大的容量,适用于长期存储和数据共享。

为了增强存储系统的可靠性,RAID(冗余磁盘阵列)技术应运而生。RAID通过将数据分散存储在多个物理磁盘上,以实现数据冗余和容错能力。不同的RAID级别提供了不同的容错和性能权衡,使存储系统能够在单一磁盘故障时保持数据的完整性和可用性。

  • 存储系统需要涉及

    • 用户
    • 介质
    • 内存
    • 网络
  • 存储系统特点

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

    • 高速、小容量 到 低速、大容量
    • Persistent Memory(持久内存,如Intel傲腾)
  • 数据怎样从应用到存储介质

    • 「缓存」很重要,贯穿整个存储体系
    • 「拷贝」很昂贵,应该尽量减少
    • 硬件设备需要有抽象统一的接入层
  • RAID

    • Redundant Arrays of Inexpensive Disks
    • 单块大容量磁盘价格 > 多块小容量磁盘
    • 单磁盘写入性能 < 多磁盘并发写入性能
    • 单磁盘容错能力有限
  • RAID 0

    • 多块磁盘简单组合
    • 数据条带化存储,提高磁盘带宽
    • 没有额外的容错设计(一块硬盘损坏即丢失全部数据)
  • RAID 1

    • 一块磁盘对应一块额外镜像盘
    • 真实空间利用率仅50%
    • 容错能力强(最多允许损坏一半硬盘不丢失数据)
  • RAID 0 + 1

    • 将多组 RAID 1 组合为 RAID 0(或反过来)
    • 空间利用率仍为50%
    • 容错能力强、写入带宽高

数据库和存储系统不一样吗?

在关系型数据库中,数据以严格定义的模式存储,数据的类型和关系在预先定义的模式下有精确的规定。这种模式化的数据存储方式使得数据的一致性和完整性能够得到保障,避免了数据的混乱和冲突。同时,关系型数据库还支持SQL(Structured Query Language)作为查询语言,用户可以通过简洁的语法进行复杂的数据查询和操作。

然而,随着信息的不断涌入,传统的关系型数据库也面临着一些挑战。大规模数据的存储和高并发访问的需求,以及半结构化数据的兴起,催生了新的数据库技术和范式。

  • 什么是关系(Relation)
    • 关系模型:描述两个实体间的联系
    • 关系代数:对关系作运算的抽象查询语言(交、并、笛卡尔积……)
    • SQL:一种领域专用语言(DSL, Domain-Specific Language),方便人类阅读的关系代数表达形式
  • 关系型数据库
    • 关系型数据库是一种存储系统,但在其之外又发展出了其他能力
    • 对结构化数据友好
    • 支持事务(ACID)
    • 支持复杂查询语言
  • 非关系型数据库
    • 关系型数据库也是一种存储系统,但一般不要求严格的结构化
    • 半/非结构化数据友好
    • 可能支持事务
    • 可能支持复杂查询语言
  • 结构化数据管理
    • 用户注册信息写入关系型数据库,以表形式管理
    • 写入文件系统,需自行定义管理结构
  • ACID 事务能力
    • Atomicity 原子性:事务内的操作要么全做,要么不做
    • Consistency 一致性:事务执行前后,数据状态是一致的
    • Isolation 隔离性:可以隔离多个并发事务,避免影响
    • Durability 持久性:事务一旦提交成功,数据保证持久性