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

93 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,本文用于记录在青训营的学习笔记和一些心得。

存储与数据库

1.经典案例

数据流动

用户注册数据-> 后端服务器 -> 数据库 -> 其他系统

数据持久化

校验数据的合法性-> 修改内存 -> 写入存储介质

2.存储系统概述

定义:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

系统特点:

  • 作为后端软件的底座,性能敏感
  • 存储系统的代码,既“简单”又“复杂”(I\o和非I\o操作)
  • 存储系统软件架构,容易受硬件的影响。

RAID可以使单机存储系统做到高性能/高性价比/高可靠性

RAID类型:

RAID 0:

  • 多块磁盘简单组合(将数据分段在不同的地方存储)
  • 数据条带化存储,提高磁盘带宽
  • 没有额外的容错设计

RAID 1:

  • 一块磁盘对应一块额外的镜像盘(一块磁盘存储数据后,在另一个盘拷贝存储相同的数据)
  • 真实空间的利用率50%
  • 容错能力强

结合上述两种类型

RAID 0 + 1

  • 容错能力强,写入带宽好

数据库(关系型数据库、非关系型数据库)

关系型数据库是存储系统,但是在存储之外还有结构化数据友好,支持事务,支持复杂查询语言的能力。

非关系型数据库也是存储系统,但是一半不要求严格的结构化。

3.主流产品剖析

3.1单机存储

定义:单个计算机节点上的存储软件系统,一般不涉及网络交互,主要在本地文件系统和Key-Value存储

本地文件系统: image.png

Key-Value存储

image.png

3.2分布式存储

定义:在单机存储基础上实现了分布式协议,涉及大量网络交互,主要是分布式文件系统和分布式对象存储。

HDFS

image.png

Ceph

image.png

3.3单机数据库

定义:单个计算机节点上的数据库系统 or 事务在单机内执行,也可能通过网络交互实现分布式事务。分为关系型数据库和非关系型数据库。

关系型数据库

数据在内存中是树状的,在硬盘里是分布式的。

Page Files:对应内存中的page文件

Redo Log:描述对哪个page进行哪些操作

others:用于存储临时数据

非关系型数据库

各个单机数据库的特点:

image.png

3.4从单机到分布式数据库

单机数据库面临的问题和挑战: 容量,弹性,性价比

解决容量问题

image.png 解决弹性问题

image.png

解决性价比问题

image.png