HTAP混合负载
本章节介绍HTAP(Hybrid Transactional/Analytical Processing,混合事务/分析处理)特性相关参数。
enable_htap
参数说明:是否开启HTAP特性,开启HTAP特性后,会加载COLVIEW关键字指定列的存量行存数据到内存IMCV(In-memory Column View,列式内存引擎)中,用于提高AP(Analytical Processing,分析处理)查询效率。使用多租数据库特性时需要关闭该参数。
参数类型:布尔型
参数单位:无
取值范围:
- on:打开HTAP特性。
- off:关闭HTAP特性。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:该参数默认关闭,如果需要开启,请结合数据库使用场景,存在大量AP查询时,开启该参数可以优化查询效率。纯TP查询场景不建议开启该参数。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
htap_max_mem_size
参数说明:依赖HTAP特性开启状态,设置HTAP特性可用的内存上限。当GaussDB动态内存使用达到上限后,即使HTAP内存使用未达到上限,也无法继续分配内存。
参数类型:整型
参数单位:kB
取值范围:102400 ~ 1073741824
默认值:1048576(即1GB)
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。例如,设置为1000000,不带单位,表示1000000kB;设置为1GB,带单位,表示1GB。取值如果要带单位,必须为kB、MB、GB。
设置建议:该参数不应该超过max_process_memory和最大共享内存,并根据实际使用场景合理分配空闲内存作为该参数的值。
设置不当的风险与影响:htap_max_mem_size的设置基于GaussDB的动态内存和内存管理机制。当max_process_memory设置不当、htap_max_mem设置过大、关闭逻辑内存管理时,可能会导致系统内存不足。当htap_max_mem_size设置过小,可能会导致创建的IMCV频繁触发内存不足异常。
最大动态内存和已使用的动态内存可以通过gs_total_memory_detail视图查询获得,max_dynamic_memory表示最大动态内存,dynamic_used_memory表示已使用的动态内存。
htap_memctl_policy
参数说明:依赖HTAP特性开启状态,设置HTAP特性内存管理的策略模式。
参数类型:枚举类型
参数单位:无
取值范围:
- delete:表示当HTAP内存不足时,删除内存列内存数据,释放内存。HTAP内存上限由参数htap_max_mem_size设置。
- swap:表示当HTAP内存不足时,会发生数据交换,不常用数据落盘到本地磁盘中。当前版本,该功能暂不生效。
默认值:delete
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_imcvscan
参数说明:依赖HTAP特性开启状态,设置是否打开HTAP内存列扫描算子IMCVScan。
参数类型:布尔型
参数单位:无
取值范围:
- on:打开HTAP内存列扫描算子IMCVScan。
- off:关闭HTAP内存列扫描算子IMCVScan。
默认值:on
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_parallel_populate
参数说明:依赖HTAP特性开启状态,设置是否开启存量行存转内存列IMCV的并行加载特性,以加速IMCV表创建流程。
参数类型:布尔型
参数单位:无
取值范围:
- on:并行加载数据。
- off:串行加载数据。
默认值:off
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:开启该参数后,加载行存数据到IMCV表可能会影响行存表的性能,请根据使用场景进行设置。开启该参数后,一次同时进行并发加载的表/分区数量(这里计算非分区表的表数量与分区表的分区数量的和)不应过多,其最大值计算公式为min(max_connections/40, 100),对于多表场景,建议分批次进行表的并发加载操作。
htap_router_mode
参数说明:依赖HTAP特性开启状态,设置HTAP透明路由的模式。
参数类型:枚举类型
参数单位:无
取值范围:
- row:强制使查询负载选择行存计划。
- column:当查询请求中的列加载到IMCV时,无视代价高低,强制执行列存(IMCVScan)计划;若存在未加载到IMCV的列时,执行行存计划。
- auto:根据查询请求中的列是否加载到IMCV,以及行列计划代价高低,自动选择行、列、行列混合计划。
默认值:row
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:当使用场景有混合负载时,推荐该参数设置为auto。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
htap_flush_workers
参数说明:依赖HTAP特性开启状态,设置同步增量行存数据到IMCV行组的最大工作线程数。
参数类型:整型
参数单位:无
取值范围:1~100
默认值:3
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:一般不建议修改,提高该参数可以提高AP性能,但是可能会影响TP性能;降低该参数会影响AP性能。
设置不当的风险与影响:设置过大可能影响TP性能,设置过小可能影响AP性能,建议使用默认值。
htap_flush_pagenum
参数说明:依赖HTAP特性开启状态,设置同步增量行存数据到IMCV行组的脏页阈值,脏页数量大于该值触发同步过程。
参数类型:整型
参数单位:无
取值范围:1~1000
默认值:512
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:一般不建议修改,降低该参数可以提高AP性能,但是可能会影响TP性能;增加该参数会影响AP性能。
设置不当的风险与影响:设置过小可能影响TP性能,设置过大可能影响AP性能,建议使用默认值。
htap_flush_interval
参数说明:依赖HTAP特性开启状态,设置同步增量行存数据到IMCV行组的最大时间间隔。
参数类型:整型
参数单位:秒
取值范围:1~36000
默认值:300
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:一般不建议修改,降低该参数可以提高AP性能,但是可能会影响TP性能;增加该参数会影响AP性能。
设置不当的风险与影响:设置过小可能影响TP性能,设置过大可能影响AP性能,建议使用默认值。