认识存储与数据库
1.经典案例
数据的产生
数据的流动
数据的持久化
存储系统的io代码要比较简单
异常处理要复杂
软件易受硬件影响
Buffer cachae 跨软件
存储技术RAID
RAID0
多块磁盘简单组合
数据条带化存储,提高磁盘带宽
没有额外的容错设计
RAID1
一块磁盘对应一块额外镜像盘
真实空间利用率仅50%
容错能力强
RAID0+1
结合了RAID0和RAID1
真实空间利用率仅50%
容错能力强,写入带宽好
关系型数据库是存储系统,
结构化数据友好
支持事务
支持复杂查询语言
非关系型数据库也是存储系统,但是一般不要求严格的格式化
半结构化数据友好
可能支持事务
可能支持复杂查询语言
主流存储产品剖析
单机存储
本地文件系统
key-value系统
本地文件系统
Linux文件系统的两大数据结构
- index node
- inode是文件的唯一标识,会被存储到磁盘上
directory entry
key-value存储
LSM-Tree,某种程度上牺牲了读性能,追求写入性能
分布式存储 在单机存储基础上实现了分布式协议,涉及大量网络交互
分布式文件系统
分布式对象存储
HDFS
支持海量数据存储
高容错率
弱POSIX语义
使用普通x86服务器,性价比高
Ceph
一套系统支持对象接口、块接口、文件接口,但是一切皆对象
数据写入采用主备复制模型
数据分布模型采用CRUSH算法
单机数据库
单个计算机节点上的数据库系统
事务在单机内执行,也可能通过网络交互实现分布式事务
关系型数据库
Oracle
MySQL
PostgreSQL
非关系型数据库
MongoDB 文档 灵活
Redis 数据结构丰富
Elasticsearch 文档 模糊搜索,自动算出关联程度
单机数据库问题,分布式数据库解决
容量 弹性 性价比
容量
存储节点池化,动态扩缩容
弹性
扩容 搬迁全量数据
缩容,disk问题难解决
性价比
分布式数据库难题
单写vs多写
从磁盘弹性到内存弹性
分布式事务优化
存储与数据库的新技术演进
软件架构变更
AI增强
新硬件革命