带你认识数据库 | 青训营

2023年 8月 15日 17.1k 0

存储系统

特点:

  • 后端软件的基础,性能敏感
  • 存储系统代码,既简单(提高性能)又复杂(减少出错,能处理fault)
  • 存储系统软件架构,容易受硬件影响

存储器层级结构:从cache到storage->容量越大,速度越慢;容量越小,速度越快

数据从应用持久化到存储介质

  • 缓存贯穿整个存储体系
  • copy cost too much,尽量减少使用
  • 硬件设备需要有抽象统一的接入层

RAID存储技术

Redundant, Array, Inexpensive, Disk
高性能,高性价比,高可靠性

数据库与存储系统不同

数据库

关系=集合=任意元素组成的的若干有序偶对
SQL = 一种DSL = 方便人类阅读的关系代数表达形式(方便人来编辑阅读的关于数据库的语言)

关系型数据库

  • 是存储系统
  • 对结构化数据特别友好
  • 支持事务(ACID)
  • 支持复杂查询语言

非关系数据库

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

事务能力(ACID):

  • Atomicity, 事务内的操作要么全做,要么不做
  • Consistency,事务执行前后,数据状态是一致的
  • Isolation,可以隔离多个并发事务,避免影响
  • Durability,事务一旦提交成功,数据保证持久性
    凸显出数据库支持“事务”的优越性

单机存储

单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互
文件系统的管理单元:文件
Linux文件系统的两大数据结构:Index Node & Directory Entry

Index Node:

  • 记录文件元数据,如id、大小、权限、磁盘位置等

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

  • inode的总数在格式化文件系统时就固定了

Directory Entry:

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

  • dentry是内存结构,与inode的关系是N:1(hardlink的实现)

世间一切都是key-value

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

单机数据库

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

(事务在单机内执行,也可能通过网络交互实现分布式事务)

RDBMS:OySQL & PostgreSQL

非关系:MongoDB,Redis

新技术

  • SPDK(Storage Performance Development Kit)
  • AI
  • 高性能硬件
    • RDMA网络
    • Persistent Memory
    • 可编程交换机
    • CPU/GPU/DPU

在存储 & 数据库领域,硬件反推软件变革十分常见

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论