欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GBase 8a临时数据目录tmpdata作用和说明

程序员文章站 2022-07-01 08:19:11
...

在GBase 8a数据库集群中,如果数据运算过程中,内存不足以保存所有数据时,会使用磁盘保存临时中间结果。本文介绍该临时数据目录tmpdata的作用和说明。

版本

本文使用的版本是9.5.2.36。

gbase> select version();
+-----------------+
| version()       |
+-----------------+
| 9.5.2.36.125743 |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)

目录位置

安装目录下/gcluster/tmpdata
安装目录下/gnode/tmpdata

调度节点gcluster的tmpdata目录列表

[[email protected]_rh7_001 tmpdata]# ll *
cache_gcluster:
total 0
drwx------ 2 gbase gbase  6 Jan 25 16:44 HashJoin
drwx------ 2 gbase gbase  6 Jan 25 16:44 tmp_longblob
drwx------ 3 gbase gbase 22 Jan 25 16:44 tmp_materialized
drwx------ 2 gbase gbase  6 Jan 25 16:44 TrashCan

krb5cc_gcluster:
total 4
-rw------- 1 gbase gbase 4 Jan 25 16:44 primary
[[email protected]_rh7_001 tmpdata]#
[[email protected]_rh7_001 tmpdata]#
[[email protected]_rh7_001 tmpdata]#
[[email protected]_rh7_001 tmpdata]# ll
total 0
drwx------. 6 gbase gbase 82 Jan 25 16:44 cache_gcluster
drwx------. 2 gbase gbase 21 Jan 25 16:44 krb5cc_gcluster

krb5cc_gbase

Kerberos的认证文件,属于配置参数的默认位置。可修改。

gbase> show variables like '%krb%';
+---------------------+---------------------------------------------+
| Variable_name       | Value                                       |
+---------------------+---------------------------------------------+
| gbase_krb5cc_tmpdir | /opt/gbase/gcluster/tmpdata/krb5cc_gcluster |
+---------------------+---------------------------------------------+
1 row in set (Elapsed: 00:00:00.01)

计算节点gnode目录列表

[[email protected]_rh7_001 tmpdata]$ ll
total 0
drwx------. 6 gbase gbase 82 Jan 27 09:22 cache_gbase
drwx------. 2 gbase gbase 21 Jan 25 16:44 krb5cc_gbase
[[email protected]_rh7_001 tmpdata]$ ll *
cache_gbase:
total 0
drwx------ 2 gbase gbase  6 Jan 25 16:44 HashJoin
drwx------ 2 gbase gbase  6 Jan 25 16:44 tmp_longblob
drwx------ 3 gbase gbase 22 Jan 25 16:44 tmp_materialized
drwx------ 2 gbase gbase  6 Jan 27 09:22 TrashCan

krb5cc_gbase:
total 4
-rw------- 1 gbase gbase 4 Jan 25 16:44 primary
[[email protected]_rh7_001 tmpdata]$

cache_gbase

临时数据缓冲目录,用于保存计算的中间结果。

SRT文件

排序产生的临时文件

HSJ

用于Hash切分时临时文件,比如group,join,distinct等。

MAT文件

HashJoin
One pass Hash Join 的中间临时文件。

tmp_longblob

blob字段数据超过32K时,临时保存目录。

tmp_materialized

物化表目录

tmp_materialized/metadata

物化表的元数据目录。

TrashCan

可清理的垃圾文件。

krb5cc_gbase

Kerberos的认证文件,属于配置参数的默认位置。可修改。

gbase> show variables like '%krb%';
+---------------------+---------------------------------------+
| Variable_name       | Value                                 |
+---------------------+---------------------------------------+
| gbase_krb5cc_tmpdir | /opt/gbase/gnode/tmpdata/krb5cc_gbase |
+---------------------+---------------------------------------+
1 row in set (Elapsed: 00:00:00.01)

样例

MAT文件

join后包括行号等的中间结果集物化文件。其中s0000000346对应session id,也就是show processlist里面的连接ID。

s0000000346_GB_MAT0000007E8554A0xbe87080.express_tmp

对应gncli里的ID列。如下第一行ID=346的是一个select join的语句,产生了中间结果集,写到了tmpdata目录下。

[[email protected]_rh7_001 cache_gbase]$ gncli -e"show processlist"
+-----+------+------------------+---------+---------+------+-------+------------------------------------------------------------------------------------------------------+
| Id  | User | Host             | db      | Command | Time | State | Info                                                                                                 |
+-----+------+------------------+---------+---------+------+-------+------------------------------------------------------------------------------------------------------+
| 346 | root | 10.0.2.101:41714 | gctmpdb | Query   |  107 | init  | SELECT /*10.0.2.101_104_163_2021-01-27_08:47:07*/ /*+ TID('366758') */ `vc01.pm.t1`.`id` AS `c2`, ca |
| 353 | root | 10.0.2.101:41912 | NULL    | Sleep   |  667 | NULL  | NULL                                                                                                 |
| 360 | root | 10.0.2.101:42252 | gctmpdb | Sleep   |  288 | NULL  | NULL                                                                                                 |
| 372 | root | localhost        | NULL    | Query   |    0 | NULL  | show processlist                                                                                     |
+-----+------+------------------+---------+---------+------+-------+------------------------------------------------------------------------------------------------------+
[[email protected]_rh7_001 cache_gbase]$

对应trc跟踪日志里面的MAT部分。如下例子写了1.6G的MAT文件。

2021-01-27 10:48:25.981 [M:   6M,   0B,D:   0B] [DC:    79,     0] SUMMARY
2021-01-27 10:48:25.981 [M:   6M,   0B,D:   0B] [DC:    79,     0] elapsed time:                00:02:14.024
2021-01-27 10:48:25.981 [M:   6M,   0B,D:   0B] [DC:    79,     0] data loaded from storage:       0B,  0s,     0 DC.
2021-01-27 10:48:25.981 [M:   6M,   0B,D:   0B] [DC:    79,     0] data decompressed:              0B,  0s.
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] temp space IO stats:
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] CB   write(   0B, 0time, 0sec),       read(   0B, 0time, 0sec)
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] SRT  write(   0B, 0time, 0sec),       read(   0B, 0time, 0sec)
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] GDC  write(   0B, 0time, 0sec),       read(   0B, 0time, 0sec)
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] MAT  write(1.60G, 114time, 2sec),     read(3.00G, 197148time, 1sec)
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] HSJ  write(   0B, 0time, 0sec),       read(   0B, 0time, 0sec)
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] ======================================================
2021-01-27 10:48:25.982 [M:   6M,   0B,D:   0B] [DC:    79,     0] SUMMARY for SIS


最终解释权为:https://www.gbase8.cn/3797