这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
此笔记的主要内容如下
- 经典案例:一条数据从产生,到数据流动,最后持久化的全生命周期
- 存储&数据库简介:数据库和存储系统背景知识,它们是什么,有哪些特点?
- 主流产品剖析:主流的存储&数据库系统架构,经典产品剖析
- 新技术演进:老系统结合新技术,如何持续演进走向新生?
数据的全生命周期
用户注册数据,数据传入后端服务器,然后存入数据库,存入数据库后,数据才算是持久化地保存起来。但是存储介质也有寿命
存储&数据库简介
存储系统
系统特点
- 作为后端软件的底座,性能敏感;
- 存储系统软件架构,容易受硬件影响;
- 存储系统代码,既“简单”又“复杂”
数据怎么从应用到存储介质
- buffer和cache的作用是在跨软件层的地方以硬件/软件友好的方式与其他层级的硬件/软件进行交互
- 拷贝操作代价高,应该尽量减少
- 硬件设备五花八门,需要有抽象统一的接入层
RAID技术
Redundant Array Inexpensive Disks
数据库
关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语言
数据库 vs 经典存储
事务能力
数据库支持 事务
主流产品剖析
单机存储
单机存储 = 单个计算机结点上的存储软件系统,一般不涉及网络交互
本地文件系统
文件系统的管理单元:文件
文件系统接口:文件系统繁多,但都遵循VFS的统一抽象接口
Key-Value存储
常见使用方式:put(k, v) & get(k)
常见数据结构:LSM-Tree,以某种程度上牺牲读性能,追求写入性能
分布式存储
分布式存储 = 在单机存储基础上实现了分布式协议,涉及大量网络交互
分布式文件系统
HDFS核心特点:
- 支持海量数据存储
- 高容错性
- 弱POSIX语义
- 使用普通x86服务器,性价比高
单机数据库
单机数据库 = 单个计算机节点上的数据库系统
事务在单机内执行,也可能通过网络交互实现分布式事务
关系型数据库
Oracle MySQL
非关系型数据库
MongoDB Redis Elasticsearch