重分布函数
以下函数为重分布期间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
参数 |
类型 |
说明 |
是否必选 |
---|---|---|---|
old_oid |
oid |
redis_old_cpu的标识。 |
是 |
- cancel_unuse_redis()
描述:取消时序表重分布。
返回值:void
- submit_redis_task(oid, interval)
描述:调用函数redis_ts_table,对一个表只允许调用一个job,如需修改,需要先停止该job,再重新调用。
参数:以表cpu为例,参见表2。
返回值类型:void
参数 |
类型 |
说明 |
是否必选 |
---|---|---|---|
old_oid |
oid |
redis_old_cpu的标识。 |
是 |
schedule_interval |
interval |
用来计算dbe_task.submit中传入的interval_time,代表此job每间隔多长时间执行一次。 |
否 |
- submit_all_redis_task(interval)
描述:对于当前连接数据库中所有未完成重分布的表调用函数submit_redis_task。
返回值类型:void
参数 |
类型 |
说明 |
是否必选 |
---|---|---|---|
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