[认识存储与数据库 | 青训营笔记 ]

115 阅读3分钟

Day 4 认识存储与数据库

一、认识存储与数据库

1、经典案例

数据流动:用户注册数据——后端服务器——数据库(必要的、记忆的数据持久化)

数据的持久化:校验数据的合法性——修改内存(用高效的数据结构组织数据)——写入存储介质(高性能、寿命友好) image.png

2、存储系统

存储系统:提供读写、控制类接口,安全有效的把数据持久化的软件

系统特点
① 性能敏感
② 代码既“简单”(传输路径简单)又“复杂”(考虑路径中的多种错误)
③ 软件架构容易受硬件影响

数据从应用到存储介质
① buffer(缓存):很重要,贯穿整个存储系统
② 拷贝:很昂贵
③ 硬件设备五花八门,需要有抽象统一的接入层 image.png
RAID技术
RAID 0
① 多块磁盘简单组合
② 数据条带化存储,提高磁盘带宽
③ 没有额外的容错设计

RAID 1
① 一块磁盘对应一块额外镜像盘
② 真实空间利用率50%
③ 容错能力强

RAID 0 + 1
① 结合
② 真实空间利用率50%
③ 容错能力强,写入带宽好

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

关系:事物间的联系 关系代数 = 对关系做运算
SQL = DSL = 方便人类阅读的关系代数表达
关系型数据库是存储系统,又发展出其他能力
image.png 非关系型数据库是存储系统,但不要求严格的结构化 image.png

4、数据库 VS 经典存储

结构化数据存储
image.png 用户注册数据——写入关系型数据库,以表形式管理
用户注册数据——写入文件,自行定义,管理结构

事务能力
数据库支持【事务】的优越性
A C I D image.png

复杂查询能力(灵活、简洁 VS 僵化、复杂)
经典存储实现复杂查询非常痛苦

数据库使用方式
DSL ~ SQL

三、主流存储产品剖析

1、单机存储

单机系统 = 单个计算机节点上的存储软件系统,一般不涉及网络交互

1.1 本地文件系统

文件系统的管理单元:文件
接口:遵循VFS的统一抽象接口
两个数据结构:Index Node、Directory Entry image.png

1.2 Key-value

常见使用方式:put(k,v) & get(k)
数据结构:LSM-Tree,牺牲读性能,追求写性能 image.png

2、分布式存储

在单机存储上实现了分布式协议

2.1 HDFS(大数据时代的基石)

image.png

2.2 ceph(万金油)

image.png

3、单机数据库——关系型数据库

内存结构 —— 磁盘结构
Redo log 操作日志
Temp data 临时数据 image.png

4、单机数据库——非关系型数据库

Elasticsearch、MongoDB、Redis (案例)最大特点是天然支持模糊搜索,自动算出关联程度 image.png

5、从单机到分布式数据库

容量、弹性、性价比
单点容量有限,受硬件限制——存储节点池化,动态扩缩容
扩缩容的容量问题——池化(同上)
cpu浪费——共享存储池,不需要扩cpu