存储与数据库|青训营笔记

65 阅读4分钟

存储与数据库

这是我参与「第五届青训营」笔记创作活动的第十四天,存储系统和数据库相关内容,了解了数据从产生到流动到最终被记录的过程和常见的数据库产品。

经典案例

  • 数据的产生和流动
    • 数据产生:注册账号
    • 数据流动
      • 产生结构化数据 常见字段->后端服务器->数据库
      • 数据库->其他系统(可能存在)
    • 数据持久化
      • 检查数据合法性
      • 修改内存:合理组织结构
      • 写入存储介质:寿命&性能友好的方式写入
    • 问题:
      • image.png

存储系统

存储系统基础

  • 定义:提供了读写控制类接口,能安全有效把数据持久化的软件
  • 要求:User,存储介质,内存,网络
  • 系统特点:
    • 性能敏感:超高性能要求
    • 容易受硬件影响
    • 代码“简单”又“复杂”:iO路径简单,异常情况处理复杂
  • 存储器层级结构
    • 小而快->大而慢
    • image.png
  • 数据从应用到存储介质
    • image.png
    • 缓存很重要,贯穿整个体系(软件cache实现跨软硬件层的友好访问)
    • 拷贝很昂贵,尽量减少
    • 硬件设备多样,需要抽象统一的接入层
  • RAID技术
    • 背景
      • image.png
    • RAID0
      • 多块磁盘简单组合
      • 数据条带化存储,提高带宽(机组基础)
      • 没有容错设计
    • RAID1
      • 一块磁盘对应一块镜像盘
      • 利用率50%
      • 容错强
    • RAID 0+1
      • 结合RAID 0和RAID 1
      • 利用率50%
      • 带宽高

数据库

  • 关系是什么?
    • 关系=集合:反应了事物间的关系
    • 关系代数:关系作运算的抽象查询语言
      • 交并补
    • SQL:一种DSL=方便人类阅读的关系代数表达形式
  • 关系型数据库
    • 关系型数据库是存储系统但在存储外发展出了其他能力
    • 特点:
      • 结构化数据友好
      • 支持事务
      • 支持复杂查询语言SQL
  • 非关系型
    • 非关系型数据库也是存储系统,不要钱严格的结构化
    • 特点:
      • 半结构化数据友好
      • 可能支持事务
      • 可能支持sql
  • 数据库vs经典存储
    • 结构化管理
      • image.png
    • 事务
      • A(atomicity):事务内的操作,要么全做,要么不做
      • C(consistency):事务执行前后,数据状态一致
      • I(isolation),隔离多个并发事务,避免影响
      • D(durability),事务一旦提交成功,数据保证持久性
    • 复杂查询能力
      • image.png

主流存储产品

  • 单机存储
    • 定义:单个计算机的存储软件系统,一般不涉及网络交互 eg:本地文件系统
    • 本地文件系统:
      • 文件系统管理单元:文件
        • 文件系统接口:VFS统一的抽象接口
        • Linux文件系统的两大数据结构:Index Node & Directory Entry
          • image.png
          • image.png
      • key-value存储
        • 常见LSM-Tree,牺牲读性能,追求写入性能
        • RocksDB
          • image.png
  • 分布式存储
    • 单机存储基础上实现分布式协议,大量网络交互
    • 分布式文件系统--HDFS
      • 背景:
        • 专用的硬件贵
        • 数据存量大
        • 超高吞吐
      • 核心特点:
        • 海量数据存储
        • 高容错性
        • 弱POSIX
        • 使用普通的X86服务器,性价比高
      • Management Node:(管控面)
        • NameNode:存储数据系统拓扑【物理位置】
      • StorageNode
        • DataNode上做计算
    • Ceph:分布式存储系统的万金油
      • 特点:
      • 支持文件接口,块接口,对象接口,一切皆对象
      • 主备模型,先写主节点再拷贝
      • 数据分布模型采用CRUSH算法
        • 分布模型:副本的存储位置选择(多台服务器)
        • Hash+权重+抽取
  • 单机数据库:事务在单机内执行,也可能通过网络交互实现分布式事务
  • 单机关系型数据库
    • 典型
      • image.png
    • 存储结构
      • image.png
  • 单机非关系型数据库
    • 典型:
      • image.png
    • Elasticsearch
      • 模糊搜索
        • image.png
    • mongodb
      • image.png
    • redis
    • image.png
  • 分布式数据库
    • 出现背景
      • 单点容量有限,硬件限制
      • 弹性:资源紧张时,扩缩容麻烦
      • 性价比
    • 解决方案
      • 存储池,存储节点池化,动态扩缩容
        • image.png
    • Moretodo:
      • 多写入
      • 内存弹性
      • 分布式事务优化

新技术演进

  • 概览
    • image.png
  • SPDK
    • image.png
  • AI
    • image.png
  • 硬件
    • image.png

标题:认识存储与数据库 - 掘金

网址:juejin.cn/course/byte…