后端day15-存储与数据库 | 青训营笔记

83 阅读2分钟

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

一、本堂课重点内容

本节课程主要分为四个方面:

  1. 模拟案例
  2. 存储 & 数据库简介
  3. 主流产品剖析
  4. 新技术演进

二、详细知识点介绍

1 存储与数据库简介
  • 存储系统概览
    • 概念:提供读写、控制类接口,能够安全有效地把数据持久化的软件。
    • 特点:性能敏感、容易受硬件影响、代码复杂。
    • RAID技术
      • RAID 0:多块磁盘简单组合,没有额外容错设计。
      • RAID 1:一块磁盘对应一块额外镜像盘,容错能力强,但空间利用率低。
  • 数据库系统概览
    • 关系型数据库特点:结构化数据友好,支持事务,支持复杂查询语言
    • 非关系型数据库特点:半结构化数据友好,可能支持事务和复杂的查询语言。
    • 数据库使用方式:SQL语言。
2 主流产品剖析
  • 单机存储产品

    • 本地文件系统:文件系统的管理单元为文件,需要提供接口。

    • Key-Value存储:如RocksDB。

  • 分布式存储:在单机上实现了分布式协议,涉及大量网络交互。

    • HDFS:支持海量数据存储,高容错性,弱POSIX语义,性价比高。
    • Ceph:一切皆对象,数据写入采用主备复制模型,数据分布模型采用CRUSH算法。
  • 单机数据库

    • 概念:单个计算机结点上的数据库系统。事务在单机内执行,也可能通过网络交互实现分布式事务。

    • 关系型数据库:Oracle、MySQL、PostgreSQL。

    • 非关系型数据库:MongoDB、Redis、Elasticsearch。

  • 分布式数据库

    • 解决容量问题:存储节点池化、动态扩缩容。

    • 解决弹性问题。

    • 解决性价比问题

3 新技术演进
  • SPDK(Storage Performance Development Kit)

    • 从内核空间到用户空间,避免系统调用带来的性能损耗。

    • 从中断到轮询,提高性能。

    • 使用无锁数据结构,降低并发时的性能开销。

  • 人工智能

  • 新硬件加速

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