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

96 阅读2分钟

存储和数据库

本章介绍了存储结构与常见的数据库及其架构,还介绍了存储方面的新技术演进方向;对于数据库很感兴趣的同学可以去看看CMU 15-445的课程,继续深入数据库相关的理论知识,也可以看看开源数据库的源码继续学习数据库的相关内容。

认识存储和数据库

  • 字节内部数据库veDB

  • 经典案例

    • 一条数据从产生,到数据流动,最后持久化的全生命周期
    • 数据库的持久化(除了性能之外,还需要注意硬件的寿命)
    • 潜在问题
  • 存储&数据库简介

    • 什么是存储系统;存储系统的特点;存储器层次结构(经典) ;persistent memory;数据怎么从应用到存储介质;RAID技术
    • 什么是数据库系统:关系型数据库/非关系型数据库;关系型数据库是存储系统,但是在存储之外又发展出其他能力;
    • 数据库vs经典存储
    • 事务:ACID
  • 主流产品剖析

    • 单机存储

      • 本地文件系统:一切皆文件;Index Node和Directory Entry
      • key-value存储:常用数据结构——LSM-Tree,某种程度上牺牲读性能,追求写入性能,RocksDB(LevelDB);数据结构分为两部分——内存:MemTable(追加,满了之后写入immutable)、Immutable MemTable;磁盘:WAL和Level 0 SSTable、Leve 1 ……然后再合并
    • 分布式存储:单机存储的基础上实现分布式协议,涉及大量网络交互

      • 分布式文件系统:HDFS,大数据时代的基石,GFS的开源实现,分为Management Node和Storage Node;在此之上mapreduce去计算
      • 分布式对象存储:Ceph,万金油,一切皆对象,数据写入采用主备复制,数据分布模型采用CRUSH算法(hash+权重+随机抽签)
    • 单机关系型数据库:Oracle、MySQL、postgreSQL

    • 单机非关系型数据库:MongoDB、Redis、ElasticSearch

    • 分布式数据库:容量(存储节点池化,动态扩缩容)、弹性(扩缩容)、性价比(CPU和磁盘容量)

  • 新技术演进

    • 软件架构改变:Bypass OS kernel;SPDK:Storage Performance Development Kit,用户态访问磁盘——避免syscall的性能损耗、中断改为轮询、无锁数据结构

    • AI增强:智能存储格式转换;AI决策

    • 新硬件革命:存储介质、计算单元、网络硬件

      • RDMA网络;kernel bypass
      • Persistent Memory
      • 可编程交换机
      • CPU/GPU/DPU