带你认识存储 & 数据库--个人总结|青训营笔记

135 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记,下面是笔记内容,如有错误,请同学批评指正。

带你认识存储 & 数据库

1 经典案例

一条数据从产生,到数据流动,最后持久化的全生命周期

2 存储&数据库介绍

什么是存储系统,什么是数据库系统

首先回答第一个小问题:存储系统是一个提供读写、控制类接口,能够安全有效地将数据持久化的软件。

主要的特点是:性能敏感,存储系统的软件架构容易受到硬件影响,代码既简单又复杂。

2.1 RAID(redundant array of inexpensive disks) 技术

容错能力强,写入带宽好

2.2 关系型数据库是存储系统

提供了结构化数据友好、支持事务ACID、支持复杂查询语言

相比之下非关系性数据库也是存储系统,仅支持半结构化数据友好、可能支持事务ACID、可能支持复杂查询语言

image.png

数据库的使用这里就不赘述,相信大家都已经熟练掌握了。

3 主流产品剖析

3.1 单机存储

Linux文件系统的两大数据结构 Index Node & Directory Entry

3.2 分布式存储

在单机基础上实现了分布式协议,涉及大量的网络交互,分为两部分:分布式文件系统、分布式对象存储。

HDFS核心特点:

  1. 支持海量数据存储
  2. 高容错性
  3. 弱POSIX语义
  4. 使用x86服务器,性价比高

分布式数据库解决容量问题

提出了存储节点池化,实现动态扩缩容

4 新技术演进

在AI领域在原本行存和列存的基础上,实现行列混存。

大部分的性能提升还是从硬件出发

  1. RDMA网络

    1. 是kernel bypass流派,不需要经过传统的网络协议栈,将用户态虚拟内存映射到网卡,减少拷贝和cpu开销。
  2. Persistent Memory

  3. 可编程交换机

  4. CPU/GPU/DPU

总结

分布式架构 数据分布策略:决定了数据怎么分布到集群里的多个物理节点,是否均匀,是否能做到高性能 数据复制协议:影响IO路径的性能、机器故障场景的处理方式 分布式事务算法:多个数据库节点协同保障一个事务的ACID特性的算法,通常基于2pc的思想设计