
# 事务ID和快照
内部事务ID类型（xid）是64位。这些函数使用的数据类型txid_snapshot，存储在特定时刻事务ID可见性的信息。其组件描述如[表1]所示。
 表1快照组件 
| 名称       | 描述                                                                                                                                             |
|:---|:---|
| xmin     | 最早的事务ID（txid）仍然活动。所有较早事务将是已经提交可见的，或者是直接回滚。                                                                                                     |
| xmax     | 作为尚未分配的txid。所有大于或等于此txids的都是尚未开始的快照时间，因此不可见。                                                                                                   |
| xip_list | 当前快照中活动的txids。这个列表只包含在xmin和xmax之间活动的txids，有可能活动的txids高于xmax。介于大于等于xmin、小于xmax，并且不在这个列表中的txid，在这个时间快照已经完成的，因此按照提交状态查看他是可见还是回滚。这个列表不包含子事务的txids。 |
   
txid_snapshot的文本表示为：xmin:xmax:xip_list。
示例：10:20:10,14,15意思为：xmin=10, xmax=20, xip_list=10, 14, 15。
以下的函数在一个输出形式中提供服务器事务信息。这些函数的主要用途是为了确定在两个快照之间有哪些事务提交。
#### pgxc_is_committed(transaction_id)
描述：如果普通表提交或忽略给定的XID（gxid）。NULL表示的状态是未知的（运行、准备、冻结等）。
返回类型：Boolean
#### pgxc_is_committed(transaction_id, bucketid)
描述: 当前版本集中式不支持hashbucket 表，该接口函数调用报错。
#### txid_current()
描述：获取当前事务ID。
返回类型：bigint
#### gs_txid_oldestxmin()
描述：获取当前最小事务id的值oldesxmin。
返回类型：bigint
#### txid_current_snapshot()
描述：获取当前快照。
返回类型：txid_snapshot
#### txid_snapshot_xip(txid_snapshot)
描述：在快照中获取正在进行的事务ID。
返回类型：setof bigint
#### txid_snapshot_xmax(txid_snapshot)
描述：获取快照的xmax。
返回类型：bigint
#### txid_snapshot_xmin(txid_snapshot)
描述：获取快照的xmin。
返回类型：bigint
#### txid_visible_in_snapshot(bigint, txid_snapshot)
描述：在快照中事务ID是否可见（不使用子事务ID）。
返回类型：Boolean
#### get_local_prepared_xact()
描述：获取当前节点两阶段残留事务信息，包括事务id、两阶段gid名称、prepared的时间、owner的oid、database的oid及当前节点的node_name。
返回类型：xid, text, timestamptz, oid, text
#### get_remote_prepared_xacts()
描述：获取所有远程节点两阶段残留事务信息，包括事务id、两阶段gid名称、prepared的时间、owner的名称、database的名称及node_name。
返回类型：xid, text, timestamptz, name, text
#### global_clean_prepared_xacts(text, text)
描述：并发清理两阶段残留事务，调用该函数将返回false。
返回类型：Boolean
#### gs_get_next_xid_csn()
描述：返回全局所有节点上的next_xid和next_csn值。
返回值如[表2]所示。
 表2gs_get_next_xid_csn返回参数说明 
| 字段名      | 描述            |
|:---|:---|
| nodename | 节点名称。         |
| next_xid | 当前节点下一个事务id号。 |
| next_csn | 当前节点下一个csn号。  |
   
#### pg_control_system()
描述：返回系统控制文件状态。
返回类型：SETOF record
#### pg_control_checkpoint()
描述：返回系统检查点状态。
返回类型：SETOF record
#### pv_builtin_functions
描述：查看所有内置系统函数信息。
参数：nan
返回值类型：proname name, pronamespace oid, proowner oid, prolang oid, procost real, prorows real, provariadic oid, protransform regproc, proisagg boolean, proiswindow boolean, prosecdef boolean, proleakproof boolean, proisstrict boolean, proretset boolean, provolatile "char", pronargs smallint, pronargdefaults smallint, prorettype oid, proargtypes oidvector, proallargtypes integer\[\], proargmodes "char"\[\], proargnames text\[\], proargdefaults pg_node_tree, prosrc text, probin text, proconfig text\[\], proacl aclitem\[\], prodefaultargpos int2vector, fencedmode boolean, proshippable boolean, propackage boolean, oid oid
#### pv_thread_memory_detail
描述：返回各线程的内存信息。多租场景下，non-PDB调用该函数时返回全部信息，PDB调用该函数时返回空列表。
参数：nan
返回值类型：threadid text, tid bigint, thrdtype text, contextname text, level smallint, parent text, totalsize bigint, freesize bigint, usedsize bigint
#### pg_relation_compression_ratio
描述：查询表压缩率，默认返回1.0。
参数：text
返回值类型：real
#### pg_relation_with_compression
描述：查询表是否压缩。
参数：text
返回值类型：boolean
#### pg_stat_file_recursive
描述：列出路径下所有文件。多租场景下，在PDB内部禁用。
参数：location text
#### pg_shared_memory_detail
描述：返回所有已产生的共享内存上下文的使用信息，各列描述请参考[GS_SHARED_MEMORY_DETAIL](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1337.html#ZH-CN_TOPIC_0000002527988632)。
参数：nan
返回值类型：contextname text, level smallint, parent text, totalsize bigint, freesize bigint, usedsize bigint
#### get_gtm_lite_status
描述：返回GTM上的backupXid和csn号，用来支持问题定位，GTM-FREE模式下不支持使用本系统函数，集中式不支持该函数。
#### gs_stat_get_wlm_plan_operator_info
描述：从内部哈希表中获取算子计划信息。
参数：oid
返回值类型：datname text, queryid int8, plan_node_id int4, startup_time int8, total_time int8, actual_rows int8, max_peak_memory int4, query_dop int4, parent_node_id int4, left_child_id int4, right_child_id int4, operation text, orientation text, strategy text, options text, condition text, projection text
#### pg_stat_get_partition_tuples_hot_updated
描述：返回给定分区id的分区热更新元组数的统计。
参数：oid
返回值类型：bigint
#### gs_session_memory_detail_tp
描述：返回会话的内存使用情况，参考gs_session_memory_detail。
参数：nan
返回值类型：sessid text, sesstype text, contextname text, level smallint, parent text, totalsize bigint, freesize bigint, usedsize bigint
#### gs_thread_memory_detail
描述：返回各线程的内存信息。
参数：nan
返回值类型：threadid text, tid bigint, thrdtype text, contextname text, level smallint, parent text, totalsize bigint, freesize bigint, usedsize bigint
#### pg_stat_get_wlm_session_iostat_info()
描述：返回会话负载I/O信息。
参数：nan
返回值类型：threadid bigint, maxcurr_iops integer, mincurr_iops integer, maxpeak_iops integer, minpeak_iops integer, iops_limits integer, io_priority integer, curr_io_limits integer
#### adm_hist_snapshot_func()
描述：返回快照执行时间相关信息，访问该函数需要打开enable_wdr_snapshot参数，并且需要snapshot schema， snapshot表和tables_snap_timestamp表的访问权限。
参数：nan
返回值类型：snap_id bigint, dbid oid, begin_interval_time timestamp(3), end_interval_time timestamp(3), flush_elapsed interval day(5) to second(1), begin_interval_time_tz timestamp(3) with time zone, end_interval_time_tz timestamp(3) with time zone
#### gs_get_current_version()
描述：依据当前编译宏返回当前编译模式，返回'P'。
参数：nan
返回值类型：char
#### gs_get_kernel_info()
描述：DN节点上的事务相关的信息。
返回值如[表3]所示。
 表3gs_get_kernel_info返回参数说明 
| 名称        | 类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| node_name | text | 节点名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| module    | text | 模块名。包括： - XACT（事务模块）。  - STANDBY（备机模块）。  - UNDO（undo模块）。  - HOTPATH（热补丁模块）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| name      | text | 探查内存态关键数据名字。包括： - startup_max_xid（线程启动时最大的xid值）。  - recent_local_xmin（本地活跃事务最小xid值）。  - recent_global_xmin（全局活跃事务最小xid值）。  - standby_xmin（备机活跃事务最小xid值）。  - standby_redo_cleanup_xmin（备机redo时cleanup日志最小xid值）。  - standby_redo_cleanup_xmin_lsn（备机redo时cleanup日志最小xid的LSN值）。  - local_csn_min（本地活跃事务最小CSN值）。  - replication_slot_xmin（复制槽的最小xid值）。  - replication_slot_catalog_xmin（catalog复制槽最小xid值）。  - global_recycle_xid（全局undo回收事务的最小xid值）。  - global_frozen_xid（全局冻结事务的最小的xid值）。  - recent_xmin（当前会话活跃事务最小xid值）。  - next_csn（下一个事务的CSN值）。  - hotpatch_additional_info（热补丁预留字段）。  - stmt_session_discard_records（内核支持全量SQL因slot满丢弃数据量）。  - stmt_shm_flush_discard_records（内核支持全量SQL因ringbuf满丢弃数据量）。  - idle_in_trans_timeout_records（内核支持空闲事务超时次数累计数据量）。   |
| value     | text | 探查内存态关键数据值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
示例：
```
gaussdb=# SELECT * FROM gs_get_kernel_info();
  node_name   | module  |             name              |  value  
--------------+---------+-------------------------------+---------
 datanode1    | XACT    | startup_max_xid               | 16488
 datanode1    | XACT    | recent_local_xmin             | 15805
 datanode1    | XACT    | recent_global_xmin            | 15805
 datanode1    | STANDBY | standby_xmin                  | 0
 datanode1    | STANDBY | standby_redo_cleanup_xmin     | 0
 datanode1    | STANDBY | standby_redo_cleanup_xmin_lsn | 0/0
 datanode1    | XACT    | local_csn_min                 | 6014225
 datanode1    | XACT    | replication_slot_xmin         | 0
 datanode1    | XACT    | replication_slot_catalog_xmin | 0
 datanode1    | UNDO    | global_recycle_xid            | 15805
 datanode1    | XACT    | global_frozen_xid             | 0
 datanode1    | XACT    | recent_xmin                   | 15805
 datanode1    | XACT    | next_csn                      | 6014226
 datanode1    | HOTPATH | hotpatch_additional_info      | 
 datanode1    | FULL_SQL| stmt_session_discard_records  | 0
 datanode1    | FULL_SQL| stmt_shm_flush_discard_records| 0
 datanode1    | XACT    | idle_in_trans_timeout_records | 0
(17 row)
```
