返回首页

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

更新日期:2024年09月11日

函数原型:
sword
GCIInitialize(




ub4 mode,




dvoid *ctxp,




dvoid *(*malocfp)(dvoid *ctxp, size_t size),




dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize),




void (*mfreefp)(dvoid *ctxp, dvoid *memptr)
);
功能描述:

初始化GCI 全局环境,
GCI 会在这个函数中初始化内部的全局变量和加载一些配置信息,
这是使用GCI 与数据库建立连接的第一步。
参数说明:

mode(输入)


初始化模式。取值如下:
deschandl e
A
TTR
_P
A
R
A
M
A
TTR
_LI S
T_C
O
LU
M
N
S
A
TTR
_N
U
M
_C
O
LS
P
A
R
A
M
P
A
R
A
M
P
A
R
A
M
A
TTR
_N
U
M
_C
O
LS
A
TTR
_N
A
M
E
A
TTR
_D
A
TA
_TY
P
E
A
TTR
_S
C
A
LE
A
TTR
_P
R
E
C
I S
I O
N
A
TTR
_D
A
TA
_S
I ZE
G
C
I P
ar am
G
et ( A
TTR
_LI S
T_C
O
LU
M
N
S
, i )





GCI_DEFAULT:缺省模式


GCI_THREADED:多线程模式

ctxp(输入/输出)


保留参数,目前不使用(仅用于和Oracle 保持兼容)

maloftp(输入)


保留参数,目前不使用(仅用于和Oracle 保持兼容)

ralocfp(输入)


保留参数,目前不使用(仅用于和Oracle 保持兼容)

mfreefp(输入)


保留参数,目前不使用(仅用于和Oracle 保持兼容)
返回值:

如果执行成功,返回GCI_SUCCESS,否则返回GCI_ERROR
注释:

该函数在每个应用中只需调用一次

默认值1024
最大值2147483647
最小值1
分级查询的最大层级数,会影响计算使用的存储空间

性能参数
gcluster_kafka_consume_batch
该参数表示consumer 一次从kafka 中读取的消息条数。
如果kafka 中的单个消息
就比较大,则该参数应设置为一个较小取值。在部分版本中该参数默认取值为
10000,会造成gclusterd 内存大量占用问题,推荐配置为100 至1000。
gcluster_kafka_batch_commit_dml_count
该参数用于控制kafka consumer 攒批特性,配置单次提交的DML 条数,即一般
情况下kafka consumer 一次提交多大批量的数据,单位是dml 操作的条数,默
认配置为100000,推荐修改为10000~ 20000。增大该值虽然可以提高实时同步
性能,但会导致gclusterd 的内存占用较多,尤其是gclusterd 与gbased 共用一
个服务器的情况下,会影响集群稳定性。此参数是一个意向值,程序未必会严格按
照此参数来提交,比如如果一个事务包含大量DML 操作,那么consumer 必须
优先确保事务完整性从而暂时忽略此参数;再比如,如果consumer 从kafka 取
消息、解析消息的速度慢于consumer 提交数据的速度,那么consumer 会根据
另一个参数gcluster_kafka_user_allowed_max_latency 的值择机提交,
而不是一
定要等待数据量满足gcluster_kafka_batch_commit_dml_count 参数。

GBase 8a MPP Cluster 最佳实践
4 参数调优
文档版本(2022-02-11)
南大通用数据技术股份有限公司
46
如果一个topic 涉及的表很多(几百个表以上)则建议该参数调小,表越多越应
调小,调小的目的是使得一次提交的数据命中较少的表,具体需要结合实际用户场
景、同步速度、资源占用情况具体对待。
gcluster_kafka_user_allowed_max_latency
参数用于配置数据提交的间隔,或者是消息数据允许缓存的时间,超过配置值后立
即进行提交操作,默认取值为10000(单位毫秒,即10 秒)。对于数据同步延迟
要求高的场景,可以调小该取值,但通常不建议低于1000,即1 秒。
两种调整场景:
1. 强调低延迟的场景
用户对数据的可见性有严格要求,源端发生数据变化后,用户要求Gbase8a 在10
秒内即可查到该数据。
调优方法:首先基于建议的参数配置,开启consumer 延迟统计功能,观察数据在
kafka consumer 环节的延迟情况。如果不满足用户要求,则调小
gcluster_kafka_user_allowed_max_latency=1000,甚至更低。如果设为100
以下仍不能满足用户要求,说明目前Gbase8a 的性能满足不了。
2. 强调高吞吐的场景
用户往kafka 生产了一大批数据后,
考察kafka consumer 需要多长时间能完成同
步,这种场景下,需要调大gcluster_kafka_user_allowed_max_latency 参数,让
consumer 能攒更大批量的数据,发挥批量的优势。一般来说,如果设为20000
以上仍不满足用户要求,说明目前Gbase8a 的性能满足不了。
gcluster_kafka_local_queue_size
参数设置consumer 缓存
dml
操作的队列的长度,应设置为
gcluster_kafka_batch_commit_dml_count 的二倍。调大此参数并不意味着内存
占用量提高,所以建议适当调大,推荐40000 到80000。
gcluster_kafka_latency_time_statistics
用于开启consumer 延迟统计功能,观察consumer 性能。
通过设置参数gcluster_kafka_latency_time_statistics=1,开启consumer 数据
的延时统计功能,开启后,可以通过查询consumer 的checkpoint table 得到延
迟统计数据。

GBase 8a MPP Cluster 最佳实践
4 参数调优
文档版本(2022-02-11)
南大通用数据技术股份有限公司
47
Consumer 统计的延迟数据包含两个时间戳,一个是consumer 读到某行数据的
时间戳,
一个是consumer 完成对这行数据的提交的时间戳。
两个时间戳的差值即
为这行数据在kafka consumer 环节的总延时。
两个时间戳和差值都会被保存到checkpoint table 里,所以开启这个参数后,
checkpoint table 会自动增加几列。
开启此参数对性能影响较小,但不能完全忽略。
由于checkpoint table 与用户数据是一起提交的,所以checkpoint table 里始终
缺少最后一次提交的延迟统计,需要下次提交时才补上。
kafka consumer 参数建议配置
对于大多数场景,建议使用下列配置即可满足要求。
gcluster_kafka_consume_batch=100
gcluster_kafka_batch_commit_dml_count=1000000
gcluster_kafka_local_queue_size=2010000
gcluster_kafka_user_allowed_max_latency=5000

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