Day 4 认识存储与数据库
一、认识存储与数据库
1、经典案例
数据流动:用户注册数据——后端服务器——数据库(必要的、记忆的数据持久化)
数据的持久化:校验数据的合法性——修改内存(用高效的数据结构组织数据)——写入存储介质(高性能、寿命友好)
2、存储系统
存储系统:提供读写、控制类接口,安全有效的把数据持久化的软件
系统特点:
① 性能敏感
② 代码既“简单”(传输路径简单)又“复杂”(考虑路径中的多种错误)
③ 软件架构容易受硬件影响
数据从应用到存储介质
① buffer(缓存):很重要,贯穿整个存储系统
② 拷贝:很昂贵
③ 硬件设备五花八门,需要有抽象统一的接入层
RAID技术
RAID 0
① 多块磁盘简单组合
② 数据条带化存储,提高磁盘带宽
③ 没有额外的容错设计
RAID 1
① 一块磁盘对应一块额外镜像盘
② 真实空间利用率50%
③ 容错能力强
RAID 0 + 1
① 结合
② 真实空间利用率50%
③ 容错能力强,写入带宽好
3、数据库(关系型、非关系型数据库)
关系:事物间的联系 关系代数 = 对关系做运算
SQL = DSL = 方便人类阅读的关系代数表达
关系型数据库是存储系统,又发展出其他能力
非关系型数据库是存储系统,但不要求严格的结构化
4、数据库 VS 经典存储
结构化数据存储
用户注册数据——写入关系型数据库,以表形式管理
用户注册数据——写入文件,自行定义,管理结构
事务能力
数据库支持【事务】的优越性
A C I D
复杂查询能力(灵活、简洁 VS 僵化、复杂)
经典存储实现复杂查询非常痛苦
数据库使用方式
DSL ~ SQL
三、主流存储产品剖析
1、单机存储
单机系统 = 单个计算机节点上的存储软件系统,一般不涉及网络交互
1.1 本地文件系统
文件系统的管理单元:文件
接口:遵循VFS的统一抽象接口
两个数据结构:Index Node、Directory Entry
1.2 Key-value
常见使用方式:put(k,v) & get(k)
数据结构:LSM-Tree,牺牲读性能,追求写性能
2、分布式存储
在单机存储上实现了分布式协议
2.1 HDFS(大数据时代的基石)
2.2 ceph(万金油)
3、单机数据库——关系型数据库
内存结构 —— 磁盘结构
Redo log 操作日志
Temp data 临时数据
4、单机数据库——非关系型数据库
Elasticsearch、MongoDB、Redis
(案例)最大特点是天然支持模糊搜索,自动算出关联程度
5、从单机到分布式数据库
容量、弹性、性价比
单点容量有限,受硬件限制——存储节点池化,动态扩缩容
扩缩容的容量问题——池化(同上)
cpu浪费——共享存储池,不需要扩cpu