请使用支持现代 CSS 与 JavaScript 的浏览器播放课件
DBPA · 17.1

内存数据库概述与新硬件

内存驻留改变存储、查询和恢复设计

VER. 2608.3 Built with impress.js

学习目标

完成本节后,你应该能够

  1. 01比较磁盘驻留数据库(DRDB)和内存数据库(IMDB)的存储与访问假设
  2. 02解释内存数据库不只是把磁盘结构完整缓存到内存
  3. 03区分日志、检查点、NVM 与复制在持久性和高可用中的职责
  4. 04区分 SIMD 数据级并行、多线程任务级并行和 NUMA 局部性
  5. 05判断 GPU 加速成立的算子、数据规模和传输条件
  6. 06比较 DRAM、NVM 和 SSD/磁盘的典型数据库角色
2/12
LEARNING OBJECTIVES

DRDB 与 IMDB 的典型优化重点不同

两者都使用 CPU、内存和 Cache;主存储假设和访问路径决定优化重点

作为硬件背景示意,展示磁盘驻留与内存数据库在 I/O、CPU、Cache 和存储层次上的典型差异
磁盘驻留与内存数据库的典型存储、访问和优化差异;IMDB 仍需日志、恢复和持久介质
维度磁盘驻留数据库(DRDB)内存数据库(IMDB)
主存储工作数据主要驻留磁盘,内存缓存热点核心工作数据驻留内存,仍需持久介质与恢复路径
访问路径页/槽进入缓冲区,再由 CPU 处理处理器直接访问面向内存的记录与索引结构
典型优化重点I/O 与缓冲命中,也要关注 CPU 与 CacheCPU、Cache 与并行,也要承担持久性 I/O
外存角色工作数据与持久副本后备、日志或其他持久性路径
3/12
DRDB AND IMDB

内存数据库需要面向内存重新设计

存储布局、索引和查询模型都要面向内存访问重新设计

存储布局

DRDB 依赖页、槽位和缓冲区;IMDB 面向内存布局组织记录

访问路径

DRDB 通过缓冲区间接访问数据;IMDB 直接访问面向内存的结构并缩短指针路径

查询模型

DRDB 以 I/O 与缓冲命中为重点;IMDB 关注 Cache、并行和内存带宽

完整缓存仍可能保留页/槽布局和缓冲区管理开销;IMDB 还要面向内存访问重设计存储和查询模型

4/12
NOT JUST CACHE

内存数据库的持久性补偿

事务可在内存完成,但提交状态必须可恢复

内存数据库用日志和检查点支持恢复,用 NVM 作为持久介质,并可用复制副本支持故障切换
日志和检查点帮助恢复提交状态;NVM 提供持久介质;复制主要支持高可用
  1. 01日志:提交前写入可靠介质,为后续重做提供依据
  2. 02检查点:周期性保存内存状态,提供较早的恢复基线
  3. 03NVM:一类非易失性介质,可作为低延迟日志或状态存储;特征随介质而变
  4. 04复制:同步或异步副本可用于故障切换和服务连续性;持久性仍由提交和可靠存储语义决定
5/12
PERSISTENCE

多核数据库需要区分并行与访存优化

SIMD 提供数据级并行,多线程提供任务级并行,Cache 局部性优化访存

SIMD

同一条指令同时处理一组数据,适合规则的向量化操作

多线程

多个核心并行推进任务,但要承担同步和共享资源竞争

Cache 局部性

让重复或相邻数据更可能被快速访问;它是访存优化,不是另一种并行级别

选择、投影和聚集等批量算子可能受益;数据布局、内存带宽、分支不规则和同步开销可能抵消收益

6/12
MULTI CORE

NUMA 让本地与远程内存访问有不同代价

NUMA 以节点组织处理器与本地内存,强调局部性与负载均衡

本地访问

线程访问本节点内存;在竞争条件相近时通常延迟较低

远程访问

线程跨 NUMA 节点取数;通常延迟更高并占用互连带宽

设计取舍

数据分区和线程绑定减少远程访问,但过度绑定可能破坏负载均衡

“尽量靠近”是优化倾向,不是必须同节点;实际取舍取决于局部性、竞争和负载均衡

7/12
NUMA

GPU 的数据库协作边界

CPU 与 GPU 的分工是典型协作,收益取决于算子、数据规模和传输成本

CPU

CPU 负责解析、事务、分支和复杂流程控制

GPU

GPU 负责规则、大批量、计算密集型的数据处理

算子

选择、投影、连接、聚集和排序等操作都可能成为候选操作

边界

CPU 与 GPU 传输、分支不规则或数据规模不足可能抵消收益

8/12
GPU

NVM 的数据库角色

NVM 是一类技术,不是单一设备;具体读写特征决定它适合什么角色

典型硬件层次示意:Cache、DRAM、NVM 和 SSD 或磁盘构成存储路径,CPU 与 GPU 构成不同计算路径
NVM 可处于 DRAM 与 SSD/磁盘之间,具体位置取决于介质和部署
层次主要优势数据库角色
DRAM延迟低但易失活跃数据和高速计算
NVM非易失;容量和读写特征随介质而变日志或温数据等候选角色
SSD/磁盘常见成本低、容量大冷数据或备份等常见角色

“越靠上通常越快、越靠下通常容量更大”是层次趋势;具体部署仍取决于介质特征、成本和恢复要求

9/12
NVM

内存数据库需要持久性补偿与硬件协同

新硬件机会需要在存储、访存、执行和恢复层重新设计

DRDB 与 IMDB

主存储和访问路径不同,但两者都使用 CPU、内存和 Cache

面向内存重设计

内存布局、索引和查询模型都要面向 Cache、并行和带宽重设计

持久性补偿

日志、检查点和 NVM 支持恢复;复制主要服务高可用和故障切换

新硬件

SIMD、多核、NUMA、GPU 和 NVM 提供机会,也带来传输、竞争和局部性代价

Takeaway

内存驻留带来的性能优势,需要持久性补偿、局部性优化和硬件协作才能成立

10/12
RECAP

本节知识地图

11/12
KNOWLEDGE MAP

本节问题

  1. 01一个系统把全部磁盘数据缓存到 DRAM,为什么仍不一定是 IMDB?
  2. 02订单提交后 DRAM 断电,日志、检查点、NVM 和复制分别承担什么角色?
  3. 03同一查询访问本地 NUMA 节点和远程节点时,性能差异可能来自哪里?
  4. 04一个小规模、分支复杂的查询交给 GPU,为什么可能没有收益?
  5. 05NVM 与 SSD/磁盘分别适合承担什么角色,判断依据是什么?
  6. 06在 HTAP 场景中,IMDB 能解决哪些存储或访问问题,又不能自动解决哪些问题?
12/12
CHECK YOUR UNDERSTANDING