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

83 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

一、存储系统

  • 概述

    • 一个提供读写、控制类接口,能安全有效地把数据持久化的软件(与用户、介质、内存、网络编程有联系)
    • 计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统
  • 特点

    • 性能敏感 <- 做到超高性能
    • 代码简单(简洁)又复杂(考虑到的问题比较多)
    • 容易受硬件影响
  • 层级结构

image.png

  • RAID技术

    • RAID 0
      • 多块磁盘简单组合
      • 数据条带化存储,提高磁盘带宽
      • 没有额外的容错设计
    • RAID 1
      • 一块磁盘对应一块额外镜像盘
      • 真实空间利用率50%
      • 容错能力强
    • RAID 0+1
      • 结合 RAID0 和 RAID1
      • 真实空间利用率50%
      • 容错能力强。写入带宽好

二、数据库

  • 认识

    包括关系型数据库和非关系型数据库

    • 关系型数据库(存储系统)
      • 关系 = 集合
      • 反应事物间的关系
      • 关系代数 = 对关系作运算的抽象查询语言(交、并、笛卡尔积...)
      • 结构化数据友好、支持事物、支持复杂查询语言
    • 非关系型数据库(存储系统)
      • 半结构化数据友好
      • 可能支持事物
      • 可能支持复杂查询语言
  • 事务

    • Atomicity 原子性
    • Consistency 一致性
    • Isolation 隔离性
    • Durability 持久性

三、单机存储(不涉及网络交互)

  • 本地文件系统

    • 管理单元:文件
    • 遵循VFS的统一抽象接口
    • Linux文件系统两大数据结构:
      • Index Node
      • Directory Entry
  • key-value存储

    • 常用方式:put(k,v)、get(k)
    • 数据结构:
      • LSM-Tree

四、分布式存储(涉及网络交互)

  • 分布式文件系统 HDFS(Hadoop Distributed File System)

    • 海量数据存储
    • 高容错性
    • 弱POSIX语义
    • 性价比高
  • 分布式对象存储Ceph

    • 一套系统支持对象接口、块接口、文件接口
    • 数据写入采用主备复制模型
    • 数据分布模型采用CRUSH算法(HASH +权重 + 随机抽签)

五、单机数据库

  • 单机关系型数据库
    • MySQL
    • PostgreSQL
  • 单机非关系型数据库
    • MongoDB
    • Redis
    • Elasticsearch

六、分布式数据库

  • 解决容量问题-->存储节点池化,动态扩缩
  • 解决弹性问题-->基于动态扩缩,无需感知database的容量空间
  • 解决性价比问题-->基于存储池的实现,有效解决扩容时CPU的利用率低的问题

资料

带你认识存储 & 数据库--字节后端青训营