返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

“4

Schema:
| 眷 K “ 医 2
,
zz
.
R
, ,
, ,

F
hash
b inc
HG-1
HG-2
HG-3

据 节 点
(1) 分 片 键 上 的 where
条 件 , 直 接 下 推 到 对 应 DN 执
行 :
gbase=# EXPLAIN SELECT
# FROM tdl WHERE a=18 ORDER BY b;
QUERY PLAN
Remote Fast Query Execution
(cost=0.00..0.00 rows=0 width=0)
Node/s:
dn2

Sort
“(cost=38. 44.
. 38. 47 rows=11 width=8)
Sort Key:
b

“Seq Scan on tdl
“(cost=0.00..38. 25 rows=11 width=8)
Filter:
(a
=
18)
(6 rows)
gbase=# EXPLAIN SELECT
# FROM tdl WHERE b=18 ORDER BY b;
QUERY PLAN
Remote Subquery Scan on all
(dnl, dn2, dn3)
(cost=0. 00.. 1. 01 rows=1 width=8)

“Seq Scan on tdl
(cost=0. 00..1.
01 rows=1 width=8)
Filter:
(b
=
18)
(3 rows)
(2)
非 分 片 键
君 ere 条
件 :DN 先 计
算 ,CX 做 结 果 汇

,group by 可 以 直 接 下 推 到 DN
南 大 通 用 数 据 技 术 股 份
有 限 公 司



@
GBASE
GBase 8e V5
挂 术 自 皮 节
4 3.4
2 Join
查 询 下 推
SELECT
* FROM tdl,td2 WHERE
tdl .a=td2.C ORDER BY a;
SELECT
* FROM tdl ,td2 WHERE
tdl .b=td2.b ORDER BY a;

Coordinator-1
,
Coordinator-2

|
N .-
]
分 片 表 : TD2
4
分 片
表 : TD2
(1) 分 片 键 上
的 join 条
件 , 直 接 下 推 到 列 应 DX 执 行 :
(2)
非 分 片
键 join
条 件
,DN 直 接 做 数 据 交 换
, 避 免 CN 成 为 性 能 瓶 颈 :
南 大 通 用 数 据 技 术 股 份 有 限 公 司
23

®
GBASE
6Base Sc V5 技 术 白 皮 书
Remote Subquery Scan on all
(dnl, dn2, dn3)
“(cost=2. 04..2. 05 rows=1 width=16)

“Sort
(cost=2. 04.
.2. 05 rows=1 width=16)
Sort Key: tdl.a

“Nested Loop
“(cost=0. 00..2. 03 rows=1 width=16)
Join Filter:
(tdl.b
= td2.b)

“Remote Subquery Scan on all
(dnl, dn2, dn3)
(cost=100. 00.
. 101. 02 rows=1 width=8)
Distribute results by H:
b

“Seq Scan on tdl
(cost=0.00..1.01 rows=1 width=8)

“Materialize
(cost=100.00..101.03 rows=1 width=8)

“Remote Subquery Scan on all
(dnl, dn2, dn3)
(cost=100. 00.
. 101. 02 rows=1 width=8)
Distribute results by H:
b
—>
Seq Scan on td2
(cost=0.00..1.01 rows=1
width=8)
(12 rows)
v
Join 下 推 到 DN 执
行 ,DN 之 间 直 接
进 行 数 据 重 分 布 , 交 换 数 据 , 无 需 CX 参
与 ; CB0

化 器 选 择 小 表 t2 做 重 分 布 ;

Sort 下 推 到 DN,CX 只
需 做 归 并 排 序
, 邀 免 CX 成
为 性 能 瓶 颈 ;
4 4 高
可 用
4 4
1
主 备 式 高 可 用 架 构
GBase 8c 主 备 式 版 本 支 持 数 据 多 副 本 兄 余 , 主 备 副 本 之 间 通 过 日 志 进 行 数 据 交 换
, 保
证 集 群 任 意 节 点 故 障 均 不 影 响 数 据 库 对 外 提 供 服

, 数 据 无 丢 失
, 满
足 ACID 特
性 。
当 主 节 点 故 障
( 包
括 但 不 限 于 服 务 器 故 障 、 数 据 库 服 务 故 障 、

网 . 断
电 、 硬 盘 故 障 等 )
时 , 备 节 点 可 以 自 动 升 级 为 主 , 并 继 续 对 外
提 供 服 务 。 该 过 程 对 应 用 透
明 ,

受 主 备 IP

址 限 制
, 即 当 备 机 被 拉 起 后 会 自 动 被 隅 予 当 前 应 用 正 在 连 接 的 IP i, BNESURITE

用 无 感 知 , 不 影 响 分 外 服 务 。
南 大 通 用 数 据 技 术 股 份 有 限 公 司
24

@
GBASE
GBase 8e V5
挂 术 自 皮 节
如 图 所 示 ,6Base 8c 提
供 VIP (Virtual IP) 功
能 , 应 用 直 接 连 接 VIP
以 访 问 数 据 库 主

炉 。 当 数 据 库 发 生 主 节 点 异 常 导 致 的 主 备 切 换
时 , 无 需 人 工 切 换 应 用 连 接 的 IP 地
址 ,

群 会 自
动 将 YIP
绑 宏 至 新 的 主 节 点 上 , 以 完 成 集 群 自 动 切 换 并 对 上 层 应 用 无 感 知 的 目 的 。
业 务 应 用
- €&
@B
1
:
1
1
1
1
1
1
1
1
1
:
:
GBase8c
GBase8c
L
GBase8c
1
1




1
1
1
1
1
1
1
1
1
1
1
1
:
_
P
_

招 B
GBase 8c 主 备 式 部 署 主 备 之 间 支 持 同 步 及 异
步 的 备 份 方 式 , 一 般 异 地 灾 备 的 节 点 会 采
用 异 步 的 备 份 方 式 , 本 地 的 备 份 节 点 会 采 用 同 步 的 备 份 方 式 。
4 4
2
分 布 式 高 可 用 架 构
GBase 8c 高 可 用 架 构 是 通 过 分 布 式 全 组 件 冗 余 实 现 的
, 即 在 软 件
层 , 针 分 分 布 式 集 群
中 的 每 个 组
件 , 均 做 了 组 件 级 元 余 。
南 大 通 用 数 据 技 术 股 份 有 限 公 司
25

GBase 8c V5
技 术 白 皮 芒
GBASE"’ =
l
同 步 版 步

Emeia

GHA Agent
Nodef1
-
—’m
i
-今
=i
GHA Agent
GHA Agent
GHA Server 国
国 刑
E


GHAServer

Node2
Node3
v
CN:
协 调
器 , 采 用 完 全 对
等 的 部 署 方 式 ;
v
“ DN: 数
据 节 炉 , 采 用 主 备 的 高 可 用 架
构 , 主 备 之 间 可 以 配 置 同 步 或 异 步 方 式 ;
v
GmM:
全 局 事 务 管 理 器 , 采 用 主 备 的 高 可 用 架
构 , 主 备
之 间 可 以 配 置 同 步 或 异 步 方

;
v
HA Center:
集 群 状 态 管 理 器 ,

用 Raft 的 复 制 协 议 ;
v
GHAServer:
集 群 管 理 器 , 采 用 主 备 的 高 可 用 架
构 , 主 备 之 间 可 以 配 置 同 步 或 异 步

式 ;
GBase 8c 可 以 满 足 名 种 应 用 场 景 下 切 数 据 库 不 同 的 高 可 用 需 求 。
1.
同 机 房 容 灾 :
采 用 同 机 房 主 从 互 备 方 案 , 可 以 抵 御 硬 件 级 别 故 障 , 不 能 抵 御 城 市 级
别 和 机 房 级 别 灾 难 。 故 障 自 动 切 换 ,RP0=0,RT0
称 级 。
2.
同 城 容 灾 :
采 用 同 城 主 从 互 备 方 案 , 可 以 抵 御 硬 件 级 别 故 障 和 机 房 级 别 灾
难 ,


抵 御 城 市 级 别 火 难 。 故 障 自 动 切 换 ,RP0=0,RT0 秒 级 。 同 城 容 火 需 要 其 中 两 机 房 之 间 距 禽

于 50 干
米 。
南 大 通 用 数 据 技 术 股 份 有 限 公 司
26

®
GBASE
GBase 8¢ V5 挂 术 白 度 芒

据 中 心 1

据 中 心 2
T T
GHA Server

GHA Server
|
|
.
一 一

i
`
GTM 从
o
o
g
=

3.
异 地 灾
备 : GBase 8c 集 群 不 同 节 点 采 用 各 自 对 应 的 高 可 用 部 署 方 式 , 两 地 间 采 用 异
步 复 制 的 备 份 方 式 。 可 以 抵 御 硬 件 级 别 故 暮 和 机 房 级 别 、 城 市 级 别 灭 难 , 两 地 之 间 距 离 可 以

于 1000 干
米 。
南 大 通 用 数 据 技 术 股 份 有 限 公 司
27

GBase 8c V5
技 术 白 皮 芒
GBASE"’
=
泞_(里


v
读 写
1

|
2
b
"
1


=

1
园 万
=
'
g
5

!
=
1
1
1
1
bs il s 逊

据 中 心 2
GTM 从
DN1

DN2

1.
异 地 多
活 : GBase 8c 支 持 多 集 群 部 署 , 集
群 间 数 据 双 向 同 步 , 数 据 以 标 一 维 度 进 行

区 调 度 。 可 以 抵 御 硬 件 级 别 故 障 和 机 房 级 别 、 城 市 级 别 火
难 , 两 地 之 间 践 离 可 以 大 于 1000

米 。
28
南 大 通 用 数 据 技 术 股 份 有 限 公 司

@
GBASE
GBase 8e V5
挂 术 自 皮 节
4
5
分 布 式 事 务
GBase 8c 通
过 GTM 全 局 事 务 管 理 器 和 本 地
两 阶 段 提 交 技 术 , 提 供 分 布 式 强 一 致 事
务 的

力 ,

时 , 对 于 追
求 性 能 的 新 兴 数 据 库 业
务 , 也 支 持 可
选 的 最 终 一 致 性 事 务 的 能 力 。
分 布 式 事 务 原 子 性 和 两 阶 段 提 交 协 议
为 了 保 证 分 布 式 事 务 的 原 子 性 , 防 止 出 现 部 分 DN 提
交 、

分 DN 回 滚 的 “ 中 间
态 “ 事
务 ,
GBase 8c 采 用
丽 阶 段 提 交 (2PC) 过
程 , 实 现 跨 节 点 分 布 式 事 务 。
一 、 准
备 阶 段 (prepare phase)
,
在 这 个 阶 段
, 将 所 有 提 交 操 作 所 需
要 使 用 到 的 信 息

资 源 全 部 写 入 磁 盘 , 完 成 持 久 化 ;
二 、 提 交 阶 段 (commit phase)
, 根 据 之 前 准 备 好 的 提
交 信 息 和 资 源 , 执 行 提 交 或 回 滚

作 。
一 旦 准
备 阶 段 执 行 成

, 那 么 提 交 需
要 的 所 有 信 息 都 完 成 持 久 化 落 盘 , 即 使 后 续 提
交 阶
段 某 个 IX 发 生 执 行 错
误 , 该
N
可 以 再 次 从 持 久 化 的 提 交 信 息 中 尝 试 提
交 , 直 至 提 交 成 功 。
最 终 该 分 布 式 事 务 在 所 有 DN 上 的 状 态 一 定 是 相 同 的 ,

么 所 有 DX 都 提
交 , 要 么 所 有 DN


滚 。

此 ,

外 来 说 , 该 事 务 的 状 态 变 化 是 原 子 的 。
分 布 式 事 务 一 致 性 和 全 局 事 务 管 理
南 大 通 用 数 据 技 术 股 份 有 限 公 司
29

@
GBASE
GBase 8e V5
挂 术 自 皮 节
GBase 8c 采 用 了 基 于 全 局 事 务 提 交 时 间 戳 的
T50 方 案
, 保 证 分 布 式 事 务 一 致 性 。


流 程 如 下 图 所 示 :
begin
*
get snapshot
insert
DML

update
t
CSN+1
get

commit
gts
commit
1
GTM 负 责 维 护 全 局 时 间 戳
CSN;
2.
当 开 启 事 务 时 从 GTM
获 取 当
前 的
时 间 戬
3.
当 事 务 提 交 的 时 候 重 新 获 取 一 遍 时 间 戳 (CSN+1)
这 种 方
式 的 优 势 在 于 :
节 点 到 事 务 管 理 器 6TM
节 点 的 网 络 开 销 , 使 得 全 局 事 务 管 理 节 点 不 再 容 易 成 为 分 布 式 事
务 处
理 的 瓦 颈 节 点 ;
v
“ 使 用 逻 辑
时 间 成 CSX 号 本 质 上 是 为 所 有 的 写 事 务 在 全 局
进 行 内 部 排 序 , 为 处 理 数 据 库 双

同 步 等 方 面 提 供 了 便 捷 。

例 :
Begin; //Transaction Start
1.
Select
* from tl Where
id
=
1;
// 单 节 炉 查 询
南 大 通 用 数 据 技 术 股 份 有 限 公 司
30

@
GBASE
GBase 8e V5
挂 术 自 皮 节
2.
Select
* from tl,t2 where tl.id
=
t2. id;//
蹈 节 点 查 询
3.
insert
into tl values(l,
“aaa”
)
;
// 单 节 炉 写 入
4
Update tl
set name
=
” bbb”
where
id
=
1;
//
单 节 点 更 新
5.
Delete from t2 where
id
<
10;
// 蹈 节 点 脑 除
Commit; //Transaction Commit
应 用
应 用




′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ T
SQL:commit
|
5
Success
Coordinator
4 6 全 局 死 锁 解 除

局 死 锁 : 数 据 库 集 群 内 ,
多 个 CX、DN
上 的 多 个 数 据 库 进 程 间 互 相 调 用
资 源 而 出 现 循
环 等 待 的 情
况 , 称 为 全 局 死 锐 。

如 :
南 大 通 用 数 据 技 术 股 份 有 限 公 司
31

@
GBASE
GBase 8e V5
挂 术 自 皮 节

务 1
T
1

务 2
T2
UPDATEtb1 SETt=1WHERE id=1;
T3

UPDATEtb1 SET t=1 WHERE id=4;
T4
UPDATE tb1 SET t=3 WHERE id=4;
UPDATEtb1 SET t=2 WHERE id=1;
T5
! COMMIT;
COMMIT
Time


T1 时
刻 , 事 务 一 Begin;

12 时
刻 , 事 务 一 update id-1
的 t
值 , 同 时 事 务 二 Begin;

T3 时
刻 , 事 务 二 update id-4

t 值 ;

T4 时
刻 , 事 务 一 要 更 新 id-4
的 t 值 , 同 时 事 务 二 要 更 新 id-1

t

, 此 时 两 事 务
出 现 循 环 等
待 , 就 发 生 了 全 局 死 锁 的
情 况 。

务 2

事 务 1


务 1
CN1
| Commp
-
*
医 卯 希
CN2
事 22
事 务 1

务 2
<
=
o

L

T2
T4 N
P T4
T3
1
N

|
><

AN
DN1
| 一
入 、DN2
id
//
\\
id
t
1
区 (

=

3
4 沥
1
南 大 通 用 数 据 技 术 股 份 有 限 公 司
32

@
GBASE
GBase 8e V5
挂 术 自 皮 节

在 GBase 8c
数 据
库 中 , 节 点 间 检 测 出 死 锁 环 之 后
, 将 首 个 发 现 死 锁 环 节 点 的 事 务 退
出 的 操 作 , 从 而 解 决 全 局 死 锐 的 问 题 。
4 7 事 务 状 态 保 持
GBase 8c 具 备 事 务 状
态 保 持 能

, 任 意 协 调 器 节 点 (CN)
官 机

, 都 不 影 响 该 节 点 正
在 进 行 的 事 务 状 态 , 事 务 会 自 动 迁 移 到 其 它 CX

, 继 续 顺 利 运 行 , 确 保 数 据 库 处 理 能 力 不
会 中 断 。

事 务 状 志 保 持
-
o
K
e
-
E
LALAL
A1
ANIN
1. CN2—DN Prepare
4.DN2, DN3—CN3 Commit OK
2.
DN—CN2 Prepare
OK
3.
CN2—DN Commit
4
DN—CN2 Commit OK
上 图 中 CN3 节 点 接 管 事 务
后 , 无 需 重 复 前 面 已 经 成 功 提 交 的 事 务 状
态 , 而 是 继 续 完 成 守

的 CN2
节 点 未 完
成 的 状 态 来 完 成 本 次 事 务 . 整 个 过 程 切 上 层 业 务 无 感 知 , 数 据 库 集 群
内 任
意 节 点 守 机 均 不 会 造 成 死 锁 或 异 常 等 待
情 泓 。

ifx_lo_specset_flags() 函数设置智能大对象规范结构中的创建时间标志。
语法
ifx_lo_specset_flags(lospec, flags)
参数
该函数接受以下参数。

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 171 -

参数
类型
用于
描述
lospec
SQL_INFX_UDT_FIXED
输入
智能大对象规范结构
flags
SQL_INTEGER
输入
创建时间标志
用法
ifx_lo_specset_flags() 设置智能大对象规范结构中的创建时间标志。

运行 CREATE SCHEMA 块之后,会将以下两行新信息添加到 systables 系统目录表中。
列名
第一行
第二行
tabname
customer
california
owner
maryl
maryl
partnum
16778361
0
tabid
101
102
rowsize
134
134
ncols
10
4
nindexes
2
0
nrows
0
0
created
01/26/2007
01/26/2007
version
1
0
tabtype
T
V
locklevel
P
B
npused
0
0
fextsize
16
0
nextsize
16
0
flags
0
0
site


dbname



对 systables 系统目录表中记录的每个表都指定一个 tabid(一个系统指定的顺序号,
它唯一地标识数据中的每个表)。
系统目录表接收 2 位的 tabid 号,
而用户创建的表接收
以 100 开头的顺序 tabid 号。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 10 -