带你认识存储的本质|青训营

88 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

经典案例

数据由前端产生,数据的流动过程是前端->后端->数据库(内存->存储介质)

潜在的问题

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

存储&数据库简介

什么是存储系统

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

特点

组我欸后端软件的底座,性能敏感;存储系统软件架构,容易受软件影响;存储系统代码,即简单又复杂

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

  1. 缓存」很重要,贯穿整个存储体系
  2. 「拷贝」很昂贵,应该尽量减少
  3. 硬件设备五花八门,需要有抽象统一的接入层

数据库

  1. 关系型数据库是存储系统,但是在存储之外,又发展出其他能力

    1. 结构化数据友好
    2. 支持事务(ACID)
    3. 支持复杂查询语言
  2. 非关系型数据库也是存储系统,但是一 般不要求严格的结构化

    1. 半结构化数据友好
    2. 可能支持事务(ACID)
    3. 可能支持复杂查询语言

主流产品刨析

单机存储

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

本地文件系统

文件系统的管理单元:文件 文件系统接口:文件系统繁多,但都遵循VFS的统一抽象接口

Key-Value存储

常见使用方式:put(k, v) & get(k) 常见数据结构:LSM-Tree,以某种程度上牺牲读性能,追求写入性能

分布式存储

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

分布式文件系统

HDFS核心特点:

  1. 支持海量数据存储
  2. 高容错性
  3. 弱POSIX语义
  4. 使用普通x86服务器,性价比高