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

52 阅读2分钟

简介

存储系统

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

系统特点:

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

存储器层次结构:

image.png

数据从应用到存储介质:

image.png

RAID技术

raid.png

数据库

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

关系代数=对关系做运算的抽象查询语句

关系=集合=任意元素组成的若干有序偶对,反映了事物间的关系

SQL=一种DSL=方便人类阅读的关系代数的表达式

关系型数据库的特点:

  • 结构化数据友好
  • 支持事务
  • 支持复杂语言查询

非关系型数据库的特点:

  • 半结构化数据友好
  • 可能支持事务
  • 可能支持复杂语言查询

主流产品

单机存储

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

本地文件系统

文件系统的管理单元:文件

文件系统接口:文件系统繁多,均遵循VFS的统一抽象接口

Linux两大数据结构:

  • Index Node

    记录文件元数据

    inode是一个文件的唯一标识,会被存储到磁盘上

    inode的总数在格式化文件系统时已被固定

  • Directory Entry

    记录文件名,inode指针,层级关系(parent)等

    dentry是内存结构,与inode的关系是N:1

key-value存储

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

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

key-value.png

分布式存储

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

HDFS

hdfs.png

Ceph

ceph.png

单机数据库

单机数据库=单个计算机节点上的数据库系统

关系型数据库

关系型数据库通用组件:

  • Query Engine:负责解析query,生成查询计划
  • Txn Manger:负责事务并发管理
  • Lock Manger:负责锁相关策略
  • Storage Engine:负责组织内存/磁盘数据结构
  • Replication:负责主备同步

关键内存数据结构:B-Tree,B+-Tree,LRU List等

关键磁盘数据结构:WriteAheadLog(RedoLog),Page

关系型数据库.png

非关系型数据库

关系型数据库一般直接使用SQL语句交互,而非关系型数据库交互方式各不相同

非关系型数据库数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活

不管是否关系型数据库,都在尝试支持SQL(子集)和事务

非关系型数据库.png

分布式数据库

解决容量问题

容量.png 解决弹性问题

弹性.png 解决性价比问题

性价比.png

新技术

高性能硬件.png