认识存储和数据库丨青训营笔记

88 阅读2分钟

经典案例

数据产生 -> 流动 -> 数据的持久化

潜在的问题

存储 & 数据库简介

存储系统

定义:

  • 提供了读写、控制类接口
  • 能够安全可靠地将数据持久化

系统特点:

  • 性能敏感
  • 代码在读写上需要简单、内部需要复杂(错误处理,考虑出多种异常情况、甚至硬件的损坏)
  • 软件架构比较容易受硬件影响

存储器层级结构:

  • 容量
  • 存活时期
  • 成本

数据是怎么从 APP -> 存储介质 的?

  • 缓冲区缓存很重要
  • 拷贝很成本很高,需要尽量减少
  • 硬件最好有抽象统一的接入层

image.png

RAID 技术

单机存储系统想同时做到高性能、高性价比、高可靠性

image.png

数据库

数据库和存储系统的区别?

关系数据库:是存储系统,但是也发展出了很多其他能力

  • 结构化数据特别友好
  • 支持事务 ACID
  • 支持复杂查询语言(SQL)

非关系型数据库

  • 半结构化数据友好
  • 后两者都是可能支持

数据库 vs 经典存储

结构化数据管理

用户数据 -> 以表形式存入数据库 -> 写入文件由数据库组织管理结构

事务能力

ACID 的特性

  • 原子性:事务内的操作,要么全做,要么不做
  • 一致性:事务执行前后,数据状态是一致的
  • 孤立性:在并发操作中,隔离多个并发事务,避免相互影响
  • 持久性:数据持久

复杂查询能力

主流产品剖析

单机存储

本地文件系统 (Linux)

  • 管理单元

  • 系统接口

  • 两大数据结构

    • INODE
    • Dir Entry

Key-value 存储

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

  • 常见数据结构 LSM-Tree

    • 原理听不懂
  • 拳头产品

分布式存储

单机存储 + 分布式协议,涉及大量网络交互

分布式文件存储系统 —— HDFS

  • 大数据时代的基石

  • 核心特点

    • 海量数据
    • 高容错
    • 弱 POSIX
    • 性价比高
  • 原理

    • Management Node
    • Storage Node

分布式对象存储系统 —— Ceph

  • 核心特点

    • 开源,万金油

    • 一切皆对象,有很多

    • 写入采用主备复制模型

    • 数据分析模型CRUSH

      • HASH + 抽签 + 随机权重
  • 原理

单机数据库

关系型数据库

  • 主流产品

    • 商业产品
    • 开源产品
  • 通用组件

  • 关键数据结构;原理听了个寂寞

    • 磁盘
    • 内存

非关系行数据库

  • 三足鼎立

  • 特点

    • 不基于 SQL 查询
    • scheme 相对灵活

新技术演进