这是我参与「第五届青训营 」伴学笔记活动十六天
存储
模拟案例
注册 注册数据(前端)->后端服务器->数据库->其他系统 数据的持久化 验证数据合法性(用户是否已经存在)->组织高效的数据结构(struct)->写入存储介质 潜在问题 数据如何不丢? 多人同时修改? 其他存储系统? 结构化数据?(流式数据如何处理?) 数据库操作方式,编程语言?
存储&数据库简介
- 存储系统概览
- 存储系统的特点
- 提供可读写的接口,能够有效的、安全的把数据持久化的软件
- 性能敏感
- 易受硬件影响
- 存储系统的代码既简单又复杂
- 存储器层级结构
- 存储器金字塔
- 软件
- buffer多用
- copy少用
- 统一的软件接入层
- 单机存储栈
- RAID技术
- redundant array of inexpensive disks(小成本磁盘阵列)
- 单块大disk价格>多个小磁盘
- 单磁盘写入性能<多磁盘并发写入
- 单磁盘容错能力有限,不安全
- 极端
- 无容错、条带化存储提高磁盘带宽
- 高容错,存储效率降低
- 存储系统的特点
- 数据库系统概览
- 关系型数据库特点
- 一种存储系统,但是在存储之外又发展出其他能力
- 结构化友好
- 支持事务
- 支持复杂查询语言(SQL)
- 非关系型数据库特点
- 不要求严格结构化
- 半结构化数据友好
- 可能支持事务
- 可能支持复杂的查询语言
- 数据库vs经典存储
- 事务
- A:原子性,要么全做,要么全不做
- C:一致性,事务执行前后数据状态是一致的
- I:隔离性,可以隔离多个并发事务,避免影响
- D:持久性,事务一旦提交成功,数据保证持久性
- 复杂查询能力
- 事务
-
数据库使用方式
- 关系型数据库特点
主流产品剖析
- 单机存储产品(大项目使用这个作为用户基本信息、用户数据信息、视频流信息存储)
- 单击文件系统
- 单机key-value存储
- 分布式存储产品
- HDFS
- Ceph
- 单机数据库产品
- 关系型数据库
- PG
- MYSQL
- query引擎
- Txn管理
- lock管理
- stroage引擎
- replication
- 非关系型数据库
- ES
- MongoDB
- 面向文档存储
- Redis
- 数据结构丰富
- hash
- set
- zset
- list
- 数据结构丰富
- Elasticsearch使用案例
- 关系型数据库
- 分布式数据库产品
- 问题与挑战
- 解决方案
新技术演进
- SPDK
- 人工智能
- 新硬件加速