经典案例
1.经典案例-数据的产生
注册
2.经典案例-数据的流动
一条用户注册数据(“user_name”:"小明")->后端服务器->数据库(->其它系统)
3.经典案例-数据的持久化
①校验数据的合法性?(小明是否存在)
②修改内存(用高效的数据结构组织数据)
③写入储存介质(寿命、性能友好的方式写入硬件)
4.经典案例-潜在的问题
保证数据不丢?
处理多人同时修改?
只能处理结构化数据?
还能存到别的存储系统吗?
存储系统
2.1 存储系统-系统概览
定义:一个提供读写、控制类接口,能够安全有效地把数据持久化的软件
User Medium Memory Network
2.1 存储系统-系统特点
性能敏感,容易受硬件影响,既简单又复杂
2.1 存储系统-存储器层级结构
2.1 存储系统-数据怎么从应用到存储介质
缓存贯穿整个存储体系
拷贝尽量减少
接入层要统一
2.1 存储系统-RAID技术
redundant array inexpensive disks
①RAID 0
②RAID 1
③RAID 0+1
2.2 数据库
①关系型数据库 ②非关系型数据库
2.2 数据库-关系型数据库特点
①结构化数据友好 ②支持事务 ③支持复杂查询语言
2.2 数据库-非关系型数据库特点
①半结构化数据友好 ②可能支持事务 ③可能支持复杂查询语言
2.3 数据库 vs 经典存储 - 结构化数据管理
一条用户注册数据{“user_name”:“xiaoming”}
①写入关系型数据库,以表形式管理。
②写入文件,自行定义管理结构。
2.3 数据库 vs 经典存储 - 事务能力
事务具有:
Atomicity,操作要么全做,要么不做
Consitency,事务执行前后,数据状态是一致的
Iolation,隔离多个并发事务,避免影响
Durability,事务一旦提交成功,数据保证持久性
2.3 数据库 vs 经典存储 - 复杂查询
2.4 数据库使用方式
增删改查
主流产品剖析
3.1单机存储
单机存储=单个计算机节点上的存储软件系统
3.1单机存储- 本地文件系统
linux:一切皆文件
管理单元:文件
linux文件系统两大数据结构:index node & directory entry
3.1单机存储- key-value存储
世间一切皆key-value
常用方式:put(k,v) get(k)
常见数据结构:LSM-tree,牺牲读性能,追求写入性能
拳头产品:RocksDS
3.2 分布式存储-概览
分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络分布
3.2 分布式存储-HDFS
HDFS:大数据时代的基石
核心特点:
支持海量数据存储、高容错性、弱POSIX语义、性价比高
3.2 分布式存储-Ceph
开源分布式存储系统的万金油 核心特点:一切皆对象、数据写入主备复制模型、数据分布模型crush算法
3.3 单机数据库-概览
单机数据库= 单个计算机节点上的数据库,事务可单机执行,也可能通过网络交互
3.3 单机数据库-关系型数据库
Oracle,Mysql,PostgreSQL
3.4 单机数据库-非关系型数据库
MongoDB、Redis、Elasticsearch
Elasticsearch
面向文档存储
json,支持嵌套
存在index
存储和构建索引能力依赖lucene引擎
大量搜索数据结构&算法
RETFUL API,弱SQL
MongoDB
面向文档存储
json,支持嵌套
存在collection
存储和构建索引能力依赖wiredTiger引擎
4.0后支持事务
client/sdk,弱SQL
Redis
数据结构丰富
C语言实现,超高性能
3.4 单机数据库 - Elasticsearch案例
模糊搜索,关联分析
3.5 从单机到分布式存储
容量、弹性、性价比
3.5 分布式数据库-解决容量问题
单点容量有限,受硬件限制
存储节点池化,动态扩缩容
3.5 分布式数据库-解决弹性问题
3.5 分布式数据库-解决性价比问题
新技术演进
4.1 新技术演进-概览
软件架构变更
AI增强2
新硬件革命