更新时间:2023-10-17 GMT+08:00
分享

重分布函数

以下函数为重分布期间gs_redis工具所用的系统函数,用户不要主动调用:

  • pg_get_redis_rel_end_ctid(text, name, int, int)
  • pg_get_redis_rel_start_ctid(text, name, int, int)
  • pg_enable_redis_proc_cancelable()
  • pg_disable_redis_proc_cancelable()
  • pg_tupleid_get_blocknum(tid)
  • pg_tupleid_get_offset(tid)
  • pg_tupleid_get_ctid_to_bigint (ctid)

以下函数均针对时序表,所指oid均只针对时序表:

  • redis_ts_table(oid)

描述:以表cpu为例,将old表(redis_old_cpu)的数据逐步转移到新的表(redis_new_cpu),从时间线最后的一个partition开始转移,并在redis_old_cpu的一个partition为空时将此partition删除,在仅余一个partition时将old表删除,并将表恢复至原cpu,为下述job所调用,用户无需手动调用。

返回值类型:void

表1 redis_ts_table参数说明

参数

类型

说明

是否必选

old_oid

oid

redis_old_cpu的标识。

  • cancel_unuse_redis()

描述:取消时序表重分布。

返回值:void

  • submit_redis_task(oid, interval)

描述:调用函数redis_ts_table,对一个表只允许调用一个job,如需修改,需要先停止该job,再重新调用。

参数:以表cpu为例,参见表2

返回值类型:void

表2 submit_redis_task参数说明

参数

类型

说明

是否必选

old_oid

oid

redis_old_cpu的标识。

schedule_interval

interval

用来计算dbe_task.submit中传入的interval_time,代表此job每间隔多长时间执行一次。

  • submit_all_redis_task(interval)

描述:对于当前连接数据库中所有未完成重分布的表调用函数submit_redis_task。

返回值类型:void

表3 submit_all_redis_task参数说明

参数

类型

说明

是否必选

schedule_interval

interval

与submit_redis_task的入参schedule_interval为一个含义。

  • cancel_redis_task(oid)

描述:当某表已转移完成,停止该表的转移的job。

参数:以表cpu为例,为redis_old_cpu的oid。

返回值类型:void

  • cancel_all_redis_task()

描述:对当前连接数据库的所有时序表,停止所有在转移的job。

返回值类型:void

  • submit_cancel_redis_task(interval)

描述:对当前连接数据库的所有时序表创建job,调用函数cancel_redis_task。

参数:间隔多长时间调用此job,默认值1h。

返回值类型:void

  • flush_depend_rule(oid)

描述:以cpu表为例,如果用户直接对redis_old_cpu表和redis_new_cpu执行了某些sql,原rule不能正常工作,可以通过此函数重建相关rule,当前创建rule的语句在pg_rules系统表中,不建议用户作允许的操作以外的行为,直接在redis_new_cpu和redis_old_cpu上执行sql,可能会造成未知错误。

参数:以表cpu为例,为表cpu的oid。

返回值类型:void

相关文档