返回首页

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

更新日期:2024年09月11日

功能说明
记录数据节点的资源池历史使用情况,包括CPU,内存,磁盘的使用信息。
表结构说明

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1470
表5- 229 表结构信息说明:




NODE_NAME
节点名称
VC_ID
虚拟集群ID
VC_NAME
虚拟集群名称
RESOURCE_POOL_ID
资源池ID 号,取值范围同字段类型取值范围
RESOURCE_POOL_NAME
资源池名称
PRIORITY
资源池优先级,取值范围[1,8]
WAITING_TASKS
该资源池在集群范围内当前等待任务数,取值范围
同字段类型取值范围
RUNNING_TASKS
该资源池在集群范围内当前运行任务数,取值范围
同字段类型取值范围
CPU_USAGE
cpu 使用率(同top 命令)
MEM_USAGE
内存使用量,取值范围同字段类型取值范围,单位
byte
DISK_USAGE
磁盘使用量,取值范围同字段类型取值范围,单位
byte
DISK_WRITEIO
磁盘写IO 带宽使用量,取值范围同字段类型取值
范围,单位bytes/s
DISK_READIO
磁盘读IO 带宽使用量,取值范围同字段类型取值
范围,单位bytes/s
SAMPLE_TIME
采样时间点

如果在原始主服务器发生故障后,SD 集群中的辅助服务器成为主服务器,那么可以使用
脚本来重新建立原始主服务器,然后将当前主服务器转换回辅助服务器。
在该示例中,主服务器 srv_pri 故障转移至 SD 辅助服务器 srv_sds_sec。此时,主服务器
是 srv_sds_sec,并且集群中的所有辅助服务器现在都指向 srv_sds_sec。要将集群复原
至 srv_pri 执行故障转移之前的状态,请遵循以下步骤:
1. 如果必要,请在 srv_pri 的 onconfig 文件中设置以下参数:
SDS_ENABLE 1

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 484 -
SDS_PAGING ,
SDS_TEMPDBS ,,,,
dbsname 值必须唯一。此外,dbsname 必须在所有现有的数据库空间、BLOB 空间
和智能大对象空间空间中唯一,包括从主服务器继承的临时空间(可能已禁用)。
如果有多个 SD 辅助服务器,dbsname 值对于每个服务器必须唯一,且不得与其
他任何 SD 辅助服务器或主服务器共享。请参阅设置共享磁盘辅助服务器,以获
取有关设置这些参数的信息。
2. 通过在 srv_pri 上运行 oninit 命令,将 srv_pri 初始化为 SD 辅助服务器。
3. 手动对 srv_pri 执行故障转移以便使其成为主服务器:
onmode –d make primary srv_pri
以上命令从集群中除去 srv_sds_sec,并使 srv_pri 成为主服务器。
4. 通过在 srv_sds_sec 上运行 oninit 命令,将 srv_sds_sec 复原为 SD 辅助服务器。

7 分布式数据

乐观OCC 与悲观2PL
悲观2PL(2 阶段锁定)和乐观并发控制(OCC)的功能差异在于对事务完整性分别采
用悲观和乐观方法。
基于磁盘的表使用悲观方法,
这是最常用的数据库方法。
MOT 引擎使用的是乐观方法。
悲观方法和乐观方法的主要功能区别在于,如果冲突发生,

悲观的方法会导致客户端等待;

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
485

而乐观方法会导致其中一个事务失败,使得客户端必须重试失败的事务。
乐观并发控制方法(MOT 使用)
乐观并发控制(OCC)方法在冲突发生时检测冲突,并在提交时执行验证检查。
乐观方法开销较小,
而且通常效率更高,
原因之一是事务冲突在大多数应用程序中并不
常见。
当强制执行REPEATABLE READ 隔离级别时,乐观方法与悲观方法之间的函数差异更
大,而当强制执行SERIALIZABLE 隔离级别时,函数差异最大。
悲观方法(MOT 未使用)
悲观并发控制(2PL,或称2 阶段锁定)方法使用锁阻止在潜在冲突的发生。执行语句
时应用锁,提交事务时释放锁。
基于磁盘的行存储使用这种方法,并且添加了多版本并发控
制(Multi-version Concurrency Control,MVCC)。
在2PL 算法中,当一个事务正在写入行时,其他事务不能访问该行;当一个行正在读
取时,其他事务不能覆盖该行。在访问时锁定每个行,以进行读写;在提交时释放锁。这些
算法需要一个处理和避免死锁的方案。
死锁可以通过计算等待图中的周期来检测。
死锁可以
通过使用TSO 保持时序或使用某种回退方案来避免。
遇时锁定(ETL)
另一种方法是遇时锁定(ETL),它以乐观的方式处理读取,但写入操作锁定它们访问
的数据。因此,来自不同ETL 事务的写入操作相互感知,并可以决定中止。实验证明,ETL
通过两种方式提高OCC 的性能:

首先,ETL 会在早期检测冲突,并通常能增加事务吞吐量。这是因为事务不会执行无
用的操作。(通常)在提交时发现的冲突无法在不中止至少一个事务的情况下解决。

其次,ETL 写后读校验(RAW)运行高效,无需昂贵或复杂的机制。
结论:
OCC 是大多数工作负载最快的选项。这一点我们在初步研究阶段已经发现。
其中一个原因是,当每个核执行多个线程时,
锁很可能被交换线程持有,
特别是在交互
模式下。另一个原因是悲观算法涉及死锁检测(产生开销),并通常使用读写锁(比标准自
旋锁效率低)。
我们选择Silo 是因为它比其他现有选项(如TicToc)简单,同时对大多数工作负载保
持相同的性能。ETL 有时比OCC 更快,但它引入了假中止,可能会使用户混淆,而OCC

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
486
则只在提交时中止。