返回首页

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

更新日期:2024年09月11日

GBA-01BR-0082
错误码
错误标识
错误显示信息
GBA-01BR-0082

remove metadata dir error
错误出现原因
实例级恢复元数据时失败
分析与建议
1,检查实例级备份数据中备份的元数据是否正确
2,检查文件系统状态及权限

enable_memory_limit
参数说明:启用逻辑内存管理模块。
该参数属于POSTMASTER 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:布尔型

on 表示启用逻辑内存管理模块。

off 表示不启用逻辑内存管理模块。
默认值:on
注意:

若max_process_memory-shared_buffers-cstore_buffers-元数据少于2G,GBase 8c 强制把
enable_memory_limit 设置为off。
其中元数据是GBase 8c 内部使用的内存和部分并发参
数,如max_connections、thread_pool_attr、max_prepared_transactions 等参数相关。

当该值为off 时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存
过多,可能导致操作系统OOM 问题。

加载千余个小文件耗时较长
问题现象
现场加载频繁,每次加载的数据量很小(几MB 到几十MB,1000 行级别),而
且大多是宽表(800~1000 列)。由于GBase 8a MPP Cluster 是列存数据库,在这
种情况下每次加载任务需要打开大量文件(与列数成正比)进行读写,并且每次
写入的数据量又很少。导致每次加载任务的IO 代价较高(在整个加载时间的占
比较高),加载最后阶段需要把数据和元数据sync 到磁盘,数据提交阶段占用时
间较长,总体加载效率偏低。目前的存储结构和整体架构确定了GBase 8a MPP
Cluster 擅长于进行大批量数据加载,不擅长处理宽表小文件频繁加载的场景。
解决方法

放大批量
在业务允许的时间窗口内,尽量放大单次加载的批量,降低提交的频率。可
以有效提高总体加载的效率。

关于并发加载的参数配置
现场配置了gbase_pararrel_max_thread_in_pool=64,10 个并发加载任务,这
样的配置不合理,3 个任务就可以用光线程池资源,后续任务只能串行,从
而影响效率。在有并发任务的情况下,一定要根据现场硬件情况配置线程池
和并行度,如在10 并发情况下可以尝试如下配置:
gbase_pararrel_max_thread_in_pool=128
gbase_loader_parallel_degree=12
(如果还有其他背景任务,还要适当调低parallel_degree)。

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
130