GaussDB 200 存储方式和空间管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page Header Item Item Item Item
插入
Tuple
Tuple
Tuple
Special
Tuple
Tuple
Tuple
Tuple
Special
删除
更新
Page Header Item Item Item
Page Header Item Item Item
在Tuple头部打 上删除标记
valuen
分布表
col1 col2,… data1
H
data2来自百度文库
A
T2 data3
S
……
H
datan
Hash code 32位二进制值
Hashkey 一列或多列
Page 4
扩容数据重分布
● 扩容前的节点标记为Node Group 1,扩容后的节点标记为Node Group 2。 ● 扩容过程中采用事务语义,当故障(网络,磁盘等硬件故障,及人为取消扩容等)发生时,利用数据库的事务回
Tuple
Tuple
Tuple
在Tuple头部打 上删除标记
Tuple
Tuple
Tuple
Tuple
Page 10
TOAST机制介绍
TOAST技术将大的字段值压缩和/或打碎成多个物理行进行存储的技术。 该项技术支持符合以下条件的数据类型:
• 变长 (varlena)表现形式的数据类型。 • 只有向表中存储超过2KB(1/4页)的字段时才会触发。 • 最大存储1GB( 230 - 1字节)的数据类型。
varchar2 int BLOB date number ……
head
chunk_id
chunk_seq
chunk_data1
chunk_data2
…
Page 11
VACUUM介绍(1/2)
VACUUM -- 垃圾收集以及可选地分析一个数据库。
VACUUM回收死行占据的存储空间。那些已经DELETE的行或者被UPDATE 过后过时的行 并没有从它们所属的表中物理删除;在完成VACUUM之前它们仍然存在。因此有必要周 期地运行VACUUM,特别是在经常更新的表上。
扩容完成后
Node Group 1 ……
主机 主机
Node Group 2
……
主机 扩容主机 扩容主机
Page 5
目录
1. 哈希机制 2. 数据存储结构 3. 表空间管理 4. 日志管理
Page 6
存储系统概述——系统目录结构介绍
$XCDATA/coordinator (the same as data_node directory tree) ../data_node |_ /base |_ /OIDxxx (table name oid) |_ /OIDyyy (table name oid) |_ /pg_tblspc |_ /OIDxxx (tablespce link) |_ /OIDyyy (tablespce link) |_ /global
Page 2
目录
1. 哈希机制 2. 数据存储结构 3. 表空间管理 4. 日志管理
Page 3
数据Hash机制
DN1 T1 T2.p1
DN2 T1 T2.p2
DN3 T1 T2.p3 …… T1 T2.p...
DNn T1 T2.pn
映射 映射 映射 映射 映射
value1 value2 value3 ……
数据文件,以1GB为单位切割文件
Freespace映射文件
VFS
数据可见性文件
ext3
ext4
……
XFS
文件名:tableOID.1,1 GB
Page 1: 8 kB Page 2
……
Page n
Page 1: 8 kB
文件系统负责块映射
……
……
Page
Page
……
Page xxx
Page 8
如何识别记录——ctid的组成
Create table test (id int, name string); Insert into test values (1001, lottu); Insert into test values (1002, rax); Insert into test values (1003, xuan); Insert into test values (1004, li0924);
GaussDB 200 存储方式和空间管理
课程概述
本课程主要介绍
行列式存储文件结构、TOAST、自由空间映射、可见性映射、数据库分 页、文件读写机制、数据库日志介绍
面向对象:
华为IT大数据产品相关渠道合作伙伴售前、实施人员及客户
学完本课程后,您将能够:
了解GaussDB 200的HASH机制 了解GaussDB 200数据存储结构 了解GaussDB 200表空间管理 了解GaussDB 200 HA机制
滚机制,保证扩容能回退到数据一致性状态。 ● 扩容完成后,数据重分布过程采用一致性Hash技术使得需要迁移的数据量最小。 ● 数据重分布完成后,会删除Node Group1。扩容过程中查询访问Node Group 1,扩容结束后查询访问Node
Group 2,保证扩容重分布过程中的业务持续性。
扩容完成前
(0,1): 表示该元组在表test的第一个数 据块的第一个偏移位置上
CTID
ID
NAME
(0,1)
1001
lottu
(0,2)
1002
rax
(0,3)
1003
xuan
(0,4)
1004
li0924
系统插入隐藏列
Page 9
记录插入、删除、更新对页面的影响
Page Header Item Item Item
语法结构
VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE } [, ...] ) ] [ table_name [ (column_name [, ...] ) ] ]
base :包含每个数据库对应的子目录。 global :包含集群中表的子目录。 pg_tblspc: 包含指向表空间的符号链接。
Page 7
行存表的存储结构
数据文件所在目录:$tablespace/DatabaseOID/tableOID …/tableOID.1 …/tableOID.2 …/tableOID_fsm …/tableOID_fsm.1 …/tableOID_fsm.2 …/tableOID_vm …/tableOID_vm.1 …/tableOID_vm.2