存储 & 数据库 | 青训营笔记

100 阅读2分钟

经典案例

比如用户在下载一款 APP 之后,第一次登录需要进行用户注册,当用户在填好资料,点击注册按钮后,一条用户注册的数据就会被发送到后端服务器,然后后端服务器会将数据发送到数据库进行持久化存储。

存储 & 数据库简介

存储系统:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件。

单机存储系统做到高性能/高性价比/高可靠性:RAID

单块大容量磁盘的价格 > 多块小容量磁盘,单块磁盘的写入性能 < 多块磁盘的并发写入性能,单块磁盘的容错能力有限,不够安全。所以使用 RAID 0+1 的方式。

关系型数据库是存储系统,但是除去存储外,又发展出其他能力。

非关系型数据库也是存储系统,但是一般不要求严格的结构化。

主流产品剖析

单机存储

单机存储 = 单个计算机节点上的存储软件系统,一般不涉及网络交互

Linux 经典哲学:一切皆文件

常见使用方式: put(k, v) & get(k)

常见数据结构: LSM-Tree,某种程度上牺牲读性能,追求写入性能

拳头产品: RocksDB

分布式存储

分布式存储 = 在单机存储基础上实现了分布式协议,涉及大量网络交互

HDFS:支持海量数据存储、高容错性、弱POSIX语义、使用普通x86服务器,性价比高。

Ceph:一套系统支持对象接口、块接口、文件接口但是一切皆对象、数据写入采用主备复制模型、数据分布模型采用CRUSH算法(HASH + 权重 + 随机抽签)。

单机关系型数据库

单机数据库 = 单个计算机节点上的数据库系统事务在单机内执行,也可能通过网络交互实现分布式事务

Mysql & PostgreSQL

image.png

单机非关系型数据库

MongoDB、Redis、ElasticSearch三足鼎立。

image.png

分布式数据库

分布式数据库主要解决以下问题:

  • 容量

image.png

  • 弹性

image.png

  • 性价比

image.png

新技术演进

image.png image.png image.png