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

142 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记。

1. 经典案例

一条数据从产生,到数据流动,最后持久化的全生命周期。

数据的产生

image.png

数据的流动

image.png

数据的持久化

image.png

潜在的问题

  • 数据库怎么保证数据不丢?
  • 数据库怎么处理多人同时修改的问题?
  • 为什么用数据库?除了数据库还能存到别的存储系统吗?
  • 数据库只能处理结构化数据吗?
  • 有哪些操作数据库的方式,要用到什么编程语言?

2. 存储 & 数据库简介

什么是存储系统?什么是数据库系统?

2.1 存储系统

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

特点:

  • 作为后端软件底座,性能敏感
  • 存储系统软件架构,容易受硬件影响
  • 存储系统代码,既简单又复杂

存储器层级结构

image.png

数据怎么从应用到存储介质

image.png

RAID技术

Q:单机存储系统怎么做到【高性能】/【高性价比】/【高可靠性】 A:Redundant Array of Inexpensive Disks

image.png

2.2 数据库

数据库分为关系型数据库和非关系型数据库。

关系型数据库特点

image.png

非关系型

image.png

2.3 数据库事务能力

image.png

3. 主流产品剖析

3.1 单机存储

image.png

本地文件系统

  • 文件系统地管理单元:文件
  • 文件系统接口:文件系统繁多,如Ext2/3/4,sysfs,rootfs,但都遵守VFS统一抽象接口
  • Linux文件系统两大数据结构:
    image.png

key-value 存储

  • 常见使用方式:put(k,v)get(k)
  • 常见数据结构:LSM-Tree,某种程度上牺牲读性能,追求写入性能
  • 拳头产品:RocksDB
    image.png

3.2 分布式存储

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

HDFS:大数据时代地基石

时代背景:专用地高级硬件很贵,同时数据量存储很大,要求超高吞吐

image.png HDFS特点:

  • 支持海量数据存储
  • 高容错性
  • 弱POSIX性
  • 使用普通x86服务器,性价比高

Ceph:开源分布式存储系统里地【万金油】

特点:

  • 一套系统支持对象接口、块接口、文件接口,但是一切皆对象

  • 数据写入采用主备复制模型

  • 数据分布模型采用CRUSH算法,CRUSH -> HASH+权重+随机抽签

    image.png

总结

image.png