Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
762086c2
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
762086c2
编写于
3月 26, 2022
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feature/qnode
上级
ed308f45
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
284 addition
and
224 deletion
+284
-224
source/libs/catalog/inc/catalogInt.h
source/libs/catalog/inc/catalogInt.h
+15
-2
source/libs/catalog/src/catalog.c
source/libs/catalog/src/catalog.c
+6
-181
source/libs/catalog/src/catalogDbg.c
source/libs/catalog/src/catalogDbg.c
+222
-0
source/libs/catalog/test/catalogTests.cpp
source/libs/catalog/test/catalogTests.cpp
+41
-41
未找到文件。
source/libs/catalog/inc/catalogInt.h
浏览文件 @
762086c2
...
...
@@ -112,7 +112,13 @@ typedef struct SCtgRuntimeStat {
}
SCtgRuntimeStat
;
typedef
struct
SCtgCacheStat
{
uint64_t
clusterNum
;
uint64_t
dbNum
;
uint64_t
tblNum
;
uint64_t
vgHitNum
;
uint64_t
vgMissNum
;
uint64_t
tblHitNum
;
uint64_t
tblMissNum
;
}
SCtgCacheStat
;
typedef
struct
SCatalogStat
{
...
...
@@ -186,7 +192,7 @@ typedef struct SCatalogMgmt {
bool
exit
;
SRWLatch
lock
;
SCtgQueue
queue
;
TdThread
updateThread
;
TdThread
updateThread
;
SHashObj
*
pCluster
;
//key: clusterId, value: SCatalog*
SCatalogStat
stat
;
SCatalogCfg
cfg
;
...
...
@@ -206,6 +212,10 @@ typedef struct SCtgAction {
#define CTG_STAT_ADD(n) atomic_add_fetch_64(&(n), 1)
#define CTG_STAT_SUB(n) atomic_sub_fetch_64(&(n), 1)
#define CTG_STAT_GET(n) atomic_load_64(&(n))
#define CTG_RUNTIME_STAT_ADD(_item) (CTG_STAT_ADD(gCtgMgmt.stat.runtime._item))
#define CTG_CACHE_STAT_ADD(_item) (CTG_STAT_ADD(gCtgMgmt.stat.cache._item))
#define CTG_IS_META_NULL(type) ((type) == META_TYPE_NULL_TABLE)
#define CTG_IS_META_CTABLE(type) ((type) == META_TYPE_CTABLE)
...
...
@@ -291,6 +301,9 @@ typedef struct SCtgAction {
#define CTG_API_ENTER() do { CTG_API_DEBUG("CTG API enter %s", __FUNCTION__); CTG_LOCK(CTG_READ, &gCtgMgmt.lock); if (atomic_load_8((int8_t*)&gCtgMgmt.exit)) { CTG_API_LEAVE(TSDB_CODE_CTG_OUT_OF_SERVICE); } } while (0)
extern
void
ctgdShowTableMeta
(
SCatalog
*
pCtg
,
const
char
*
tbName
,
STableMeta
*
p
);
extern
void
ctgdShowClusterCache
(
SCatalog
*
pCtg
);
extern
int32_t
ctgdShowCacheInfo
(
void
);
#ifdef __cplusplus
}
...
...
source/libs/catalog/src/catalog.c
浏览文件 @
762086c2
...
...
@@ -24,8 +24,8 @@ int32_t ctgActRemoveDB(SCtgMetaAction *action);
int32_t
ctgActRemoveStb
(
SCtgMetaAction
*
action
);
int32_t
ctgActRemoveTbl
(
SCtgMetaAction
*
action
);
extern
SCtgDebug
gCTGDebug
;
SCatalogMgmt
gCtgMgmt
=
{
0
};
SCtgDebug
gCTGDebug
=
{
0
};
SCtgAction
gCtgAction
[
CTG_ACT_MAX
]
=
{{
CTG_ACT_UPDATE_VG
,
"update vgInfo"
,
...
...
@@ -53,181 +53,6 @@ SCtgAction gCtgAction[CTG_ACT_MAX] = {{
}
};
int32_t
ctgDbgEnableDebug
(
char
*
option
)
{
if
(
0
==
strcasecmp
(
option
,
"lock"
))
{
gCTGDebug
.
lockEnable
=
true
;
qDebug
(
"lock debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
if
(
0
==
strcasecmp
(
option
,
"cache"
))
{
gCTGDebug
.
cacheEnable
=
true
;
qDebug
(
"cache debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
if
(
0
==
strcasecmp
(
option
,
"api"
))
{
gCTGDebug
.
apiEnable
=
true
;
qDebug
(
"api debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
if
(
0
==
strcasecmp
(
option
,
"meta"
))
{
gCTGDebug
.
metaEnable
=
true
;
qDebug
(
"api debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
qError
(
"invalid debug option:%s"
,
option
);
return
TSDB_CODE_CTG_INTERNAL_ERROR
;
}
int32_t
ctgDbgGetStatNum
(
char
*
option
,
void
*
res
)
{
if
(
0
==
strcasecmp
(
option
,
"runtime.qDoneNum"
))
{
*
(
uint64_t
*
)
res
=
atomic_load_64
(
&
gCtgMgmt
.
stat
.
runtime
.
qDoneNum
);
return
TSDB_CODE_SUCCESS
;
}
qError
(
"invalid stat option:%s"
,
option
);
return
TSDB_CODE_CTG_INTERNAL_ERROR
;
}
int32_t
ctgDbgGetTbMetaNum
(
SCtgDBCache
*
dbCache
)
{
return
dbCache
->
tbCache
.
metaCache
?
(
int32_t
)
taosHashGetSize
(
dbCache
->
tbCache
.
metaCache
)
:
0
;
}
int32_t
ctgDbgGetStbNum
(
SCtgDBCache
*
dbCache
)
{
return
dbCache
->
tbCache
.
stbCache
?
(
int32_t
)
taosHashGetSize
(
dbCache
->
tbCache
.
stbCache
)
:
0
;
}
int32_t
ctgDbgGetRentNum
(
SCtgRentMgmt
*
rent
)
{
int32_t
num
=
0
;
for
(
uint16_t
i
=
0
;
i
<
rent
->
slotNum
;
++
i
)
{
SCtgRentSlot
*
slot
=
&
rent
->
slots
[
i
];
if
(
NULL
==
slot
->
meta
)
{
continue
;
}
num
+=
taosArrayGetSize
(
slot
->
meta
);
}
return
num
;
}
int32_t
ctgDbgGetClusterCacheNum
(
SCatalog
*
pCtg
,
int32_t
type
)
{
if
(
NULL
==
pCtg
||
NULL
==
pCtg
->
dbCache
)
{
return
0
;
}
switch
(
type
)
{
case
CTG_DBG_DB_NUM
:
return
(
int32_t
)
taosHashGetSize
(
pCtg
->
dbCache
);
case
CTG_DBG_DB_RENT_NUM
:
return
ctgDbgGetRentNum
(
&
pCtg
->
dbRent
);
case
CTG_DBG_STB_RENT_NUM
:
return
ctgDbgGetRentNum
(
&
pCtg
->
stbRent
);
default:
break
;
}
SCtgDBCache
*
dbCache
=
NULL
;
int32_t
num
=
0
;
void
*
pIter
=
taosHashIterate
(
pCtg
->
dbCache
,
NULL
);
while
(
pIter
)
{
dbCache
=
(
SCtgDBCache
*
)
pIter
;
switch
(
type
)
{
case
CTG_DBG_META_NUM
:
num
+=
ctgDbgGetTbMetaNum
(
dbCache
);
break
;
case
CTG_DBG_STB_NUM
:
num
+=
ctgDbgGetStbNum
(
dbCache
);
break
;
default:
ctgError
(
"invalid type:%d"
,
type
);
break
;
}
pIter
=
taosHashIterate
(
pCtg
->
dbCache
,
pIter
);
}
return
num
;
}
void
ctgDbgShowTableMeta
(
SCatalog
*
pCtg
,
const
char
*
tbName
,
STableMeta
*
p
)
{
if
(
!
gCTGDebug
.
metaEnable
)
{
return
;
}
STableComInfo
*
c
=
&
p
->
tableInfo
;
if
(
TSDB_CHILD_TABLE
==
p
->
tableType
)
{
ctgDebug
(
"table [%s] meta: type:%d, vgId:%d, uid:%"
PRIx64
",suid:%"
PRIx64
,
tbName
,
p
->
tableType
,
p
->
vgId
,
p
->
uid
,
p
->
suid
);
return
;
}
else
{
ctgDebug
(
"table [%s] meta: type:%d, vgId:%d, uid:%"
PRIx64
",suid:%"
PRIx64
",sv:%d, tv:%d, tagNum:%d, precision:%d, colNum:%d, rowSize:%d"
,
tbName
,
p
->
tableType
,
p
->
vgId
,
p
->
uid
,
p
->
suid
,
p
->
sversion
,
p
->
tversion
,
c
->
numOfTags
,
c
->
precision
,
c
->
numOfColumns
,
c
->
rowSize
);
}
int32_t
colNum
=
c
->
numOfColumns
+
c
->
numOfTags
;
for
(
int32_t
i
=
0
;
i
<
colNum
;
++
i
)
{
SSchema
*
s
=
&
p
->
schema
[
i
];
ctgDebug
(
"[%d] name:%s, type:%d, colId:%d, bytes:%d"
,
i
,
s
->
name
,
s
->
type
,
s
->
colId
,
s
->
bytes
);
}
}
void
ctgDbgShowDBCache
(
SCatalog
*
pCtg
,
SHashObj
*
dbHash
)
{
if
(
NULL
==
dbHash
||
!
gCTGDebug
.
cacheEnable
)
{
return
;
}
int32_t
i
=
0
;
SCtgDBCache
*
dbCache
=
NULL
;
void
*
pIter
=
taosHashIterate
(
dbHash
,
NULL
);
while
(
pIter
)
{
char
*
dbFName
=
NULL
;
size_t
len
=
0
;
dbCache
=
(
SCtgDBCache
*
)
pIter
;
dbFName
=
taosHashGetKey
(
pIter
,
&
len
);
int32_t
metaNum
=
dbCache
->
tbCache
.
metaCache
?
taosHashGetSize
(
dbCache
->
tbCache
.
metaCache
)
:
0
;
int32_t
stbNum
=
dbCache
->
tbCache
.
stbCache
?
taosHashGetSize
(
dbCache
->
tbCache
.
stbCache
)
:
0
;
int32_t
vgVersion
=
CTG_DEFAULT_INVALID_VERSION
;
int32_t
hashMethod
=
-
1
;
int32_t
vgNum
=
0
;
if
(
dbCache
->
vgInfo
)
{
vgVersion
=
dbCache
->
vgInfo
->
vgVersion
;
hashMethod
=
dbCache
->
vgInfo
->
hashMethod
;
if
(
dbCache
->
vgInfo
->
vgHash
)
{
vgNum
=
taosHashGetSize
(
dbCache
->
vgInfo
->
vgHash
);
}
}
ctgDebug
(
"[%d] db [%.*s][%"
PRIx64
"] %s: metaNum:%d, stbNum:%d, vgVersion:%d, hashMethod:%d, vgNum:%d"
,
i
,
(
int32_t
)
len
,
dbFName
,
dbCache
->
dbId
,
dbCache
->
deleted
?
"deleted"
:
""
,
metaNum
,
stbNum
,
vgVersion
,
hashMethod
,
vgNum
);
pIter
=
taosHashIterate
(
dbHash
,
pIter
);
}
}
void
ctgDbgShowClusterCache
(
SCatalog
*
pCtg
)
{
if
(
!
gCTGDebug
.
cacheEnable
||
NULL
==
pCtg
)
{
return
;
}
ctgDebug
(
"## cluster %"
PRIx64
" %p cache Info ##"
,
pCtg
->
clusterId
,
pCtg
);
ctgDebug
(
"db:%d meta:%d stb:%d dbRent:%d stbRent:%d"
,
ctgDbgGetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
),
ctgDbgGetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
),
ctgDbgGetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_NUM
),
ctgDbgGetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_RENT_NUM
),
ctgDbgGetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
));
ctgDbgShowDBCache
(
pCtg
,
pCtg
->
dbCache
);
}
void
ctgFreeMetaRent
(
SCtgRentMgmt
*
mgmt
)
{
if
(
NULL
==
mgmt
->
slots
)
{
...
...
@@ -361,7 +186,7 @@ int32_t ctgPushAction(SCatalog* pCtg, SCtgMetaAction *action) {
CTG_UNLOCK
(
CTG_WRITE
,
&
gCtgMgmt
.
queue
.
qlock
);
CTG_QUEUE_ADD
();
CTG_
STAT_ADD
(
gCtgMgmt
.
stat
.
runtime
.
qNum
);
CTG_
RUNTIME_STAT_ADD
(
qNum
);
tsem_post
(
&
gCtgMgmt
.
queue
.
reqSem
);
...
...
@@ -1595,7 +1420,7 @@ int32_t ctgUpdateTblMeta(SCatalog *pCtg, SCtgDBCache *dbCache, char *dbFName, ui
}
ctgDebug
(
"tbmeta updated to cache, dbFName:%s, tbName:%s, tbType:%d"
,
dbFName
,
tbName
,
meta
->
tableType
);
ctg
Dbg
ShowTableMeta
(
pCtg
,
tbName
,
meta
);
ctg
d
ShowTableMeta
(
pCtg
,
tbName
,
meta
);
if
(
!
isStb
)
{
CTG_UNLOCK
(
CTG_READ
,
&
tbCache
->
metaLock
);
...
...
@@ -1962,7 +1787,7 @@ _return:
if
(
*
pTableMeta
)
{
ctgDebug
(
"tbmeta returned, tbName:%s, tbType:%d"
,
pTableName
->
tname
,
(
*
pTableMeta
)
->
tableType
);
ctg
Dbg
ShowTableMeta
(
pCtg
,
pTableName
->
tname
,
*
pTableMeta
);
ctg
d
ShowTableMeta
(
pCtg
,
pTableName
->
tname
,
*
pTableMeta
);
}
CTG_RET
(
code
);
...
...
@@ -2161,9 +1986,9 @@ void* ctgUpdateThreadFunc(void* param) {
tsem_post
(
&
gCtgMgmt
.
queue
.
rspSem
);
}
CTG_
STAT_ADD
(
gCtgMgmt
.
stat
.
runtime
.
qDoneNum
);
CTG_
RUNTIME_STAT_ADD
(
qDoneNum
);
ctg
Dbg
ShowClusterCache
(
pCtg
);
ctg
d
ShowClusterCache
(
pCtg
);
}
CTG_UNLOCK
(
CTG_READ
,
&
gCtgMgmt
.
lock
);
...
...
source/libs/catalog/src/catalogDbg.c
0 → 100644
浏览文件 @
762086c2
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "trpc.h"
#include "query.h"
#include "tname.h"
#include "catalogInt.h"
extern
SCatalogMgmt
gCtgMgmt
;
SCtgDebug
gCTGDebug
=
{
0
};
int32_t
ctgdEnableDebug
(
char
*
option
)
{
if
(
0
==
strcasecmp
(
option
,
"lock"
))
{
gCTGDebug
.
lockEnable
=
true
;
qDebug
(
"lock debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
if
(
0
==
strcasecmp
(
option
,
"cache"
))
{
gCTGDebug
.
cacheEnable
=
true
;
qDebug
(
"cache debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
if
(
0
==
strcasecmp
(
option
,
"api"
))
{
gCTGDebug
.
apiEnable
=
true
;
qDebug
(
"api debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
if
(
0
==
strcasecmp
(
option
,
"meta"
))
{
gCTGDebug
.
metaEnable
=
true
;
qDebug
(
"api debug enabled"
);
return
TSDB_CODE_SUCCESS
;
}
qError
(
"invalid debug option:%s"
,
option
);
return
TSDB_CODE_CTG_INTERNAL_ERROR
;
}
int32_t
ctgdGetStatNum
(
char
*
option
,
void
*
res
)
{
if
(
0
==
strcasecmp
(
option
,
"runtime.qDoneNum"
))
{
*
(
uint64_t
*
)
res
=
atomic_load_64
(
&
gCtgMgmt
.
stat
.
runtime
.
qDoneNum
);
return
TSDB_CODE_SUCCESS
;
}
qError
(
"invalid stat option:%s"
,
option
);
return
TSDB_CODE_CTG_INTERNAL_ERROR
;
}
int32_t
ctgdGetTbMetaNum
(
SCtgDBCache
*
dbCache
)
{
return
dbCache
->
tbCache
.
metaCache
?
(
int32_t
)
taosHashGetSize
(
dbCache
->
tbCache
.
metaCache
)
:
0
;
}
int32_t
ctgdGetStbNum
(
SCtgDBCache
*
dbCache
)
{
return
dbCache
->
tbCache
.
stbCache
?
(
int32_t
)
taosHashGetSize
(
dbCache
->
tbCache
.
stbCache
)
:
0
;
}
int32_t
ctgdGetRentNum
(
SCtgRentMgmt
*
rent
)
{
int32_t
num
=
0
;
for
(
uint16_t
i
=
0
;
i
<
rent
->
slotNum
;
++
i
)
{
SCtgRentSlot
*
slot
=
&
rent
->
slots
[
i
];
if
(
NULL
==
slot
->
meta
)
{
continue
;
}
num
+=
taosArrayGetSize
(
slot
->
meta
);
}
return
num
;
}
int32_t
ctgdGetClusterCacheNum
(
SCatalog
*
pCtg
,
int32_t
type
)
{
if
(
NULL
==
pCtg
||
NULL
==
pCtg
->
dbCache
)
{
return
0
;
}
switch
(
type
)
{
case
CTG_DBG_DB_NUM
:
return
(
int32_t
)
taosHashGetSize
(
pCtg
->
dbCache
);
case
CTG_DBG_DB_RENT_NUM
:
return
ctgdGetRentNum
(
&
pCtg
->
dbRent
);
case
CTG_DBG_STB_RENT_NUM
:
return
ctgdGetRentNum
(
&
pCtg
->
stbRent
);
default:
break
;
}
SCtgDBCache
*
dbCache
=
NULL
;
int32_t
num
=
0
;
void
*
pIter
=
taosHashIterate
(
pCtg
->
dbCache
,
NULL
);
while
(
pIter
)
{
dbCache
=
(
SCtgDBCache
*
)
pIter
;
switch
(
type
)
{
case
CTG_DBG_META_NUM
:
num
+=
ctgdGetTbMetaNum
(
dbCache
);
break
;
case
CTG_DBG_STB_NUM
:
num
+=
ctgdGetStbNum
(
dbCache
);
break
;
default:
ctgError
(
"invalid type:%d"
,
type
);
break
;
}
pIter
=
taosHashIterate
(
pCtg
->
dbCache
,
pIter
);
}
return
num
;
}
void
ctgdShowTableMeta
(
SCatalog
*
pCtg
,
const
char
*
tbName
,
STableMeta
*
p
)
{
if
(
!
gCTGDebug
.
metaEnable
)
{
return
;
}
STableComInfo
*
c
=
&
p
->
tableInfo
;
if
(
TSDB_CHILD_TABLE
==
p
->
tableType
)
{
ctgDebug
(
"table [%s] meta: type:%d, vgId:%d, uid:%"
PRIx64
",suid:%"
PRIx64
,
tbName
,
p
->
tableType
,
p
->
vgId
,
p
->
uid
,
p
->
suid
);
return
;
}
else
{
ctgDebug
(
"table [%s] meta: type:%d, vgId:%d, uid:%"
PRIx64
",suid:%"
PRIx64
",sv:%d, tv:%d, tagNum:%d, precision:%d, colNum:%d, rowSize:%d"
,
tbName
,
p
->
tableType
,
p
->
vgId
,
p
->
uid
,
p
->
suid
,
p
->
sversion
,
p
->
tversion
,
c
->
numOfTags
,
c
->
precision
,
c
->
numOfColumns
,
c
->
rowSize
);
}
int32_t
colNum
=
c
->
numOfColumns
+
c
->
numOfTags
;
for
(
int32_t
i
=
0
;
i
<
colNum
;
++
i
)
{
SSchema
*
s
=
&
p
->
schema
[
i
];
ctgDebug
(
"[%d] name:%s, type:%d, colId:%d, bytes:%d"
,
i
,
s
->
name
,
s
->
type
,
s
->
colId
,
s
->
bytes
);
}
}
void
ctgdShowDBCache
(
SCatalog
*
pCtg
,
SHashObj
*
dbHash
)
{
if
(
NULL
==
dbHash
||
!
gCTGDebug
.
cacheEnable
)
{
return
;
}
int32_t
i
=
0
;
SCtgDBCache
*
dbCache
=
NULL
;
void
*
pIter
=
taosHashIterate
(
dbHash
,
NULL
);
while
(
pIter
)
{
char
*
dbFName
=
NULL
;
size_t
len
=
0
;
dbCache
=
(
SCtgDBCache
*
)
pIter
;
dbFName
=
taosHashGetKey
(
pIter
,
&
len
);
int32_t
metaNum
=
dbCache
->
tbCache
.
metaCache
?
taosHashGetSize
(
dbCache
->
tbCache
.
metaCache
)
:
0
;
int32_t
stbNum
=
dbCache
->
tbCache
.
stbCache
?
taosHashGetSize
(
dbCache
->
tbCache
.
stbCache
)
:
0
;
int32_t
vgVersion
=
CTG_DEFAULT_INVALID_VERSION
;
int32_t
hashMethod
=
-
1
;
int32_t
vgNum
=
0
;
if
(
dbCache
->
vgInfo
)
{
vgVersion
=
dbCache
->
vgInfo
->
vgVersion
;
hashMethod
=
dbCache
->
vgInfo
->
hashMethod
;
if
(
dbCache
->
vgInfo
->
vgHash
)
{
vgNum
=
taosHashGetSize
(
dbCache
->
vgInfo
->
vgHash
);
}
}
ctgDebug
(
"[%d] db [%.*s][%"
PRIx64
"] %s: metaNum:%d, stbNum:%d, vgVersion:%d, hashMethod:%d, vgNum:%d"
,
i
,
(
int32_t
)
len
,
dbFName
,
dbCache
->
dbId
,
dbCache
->
deleted
?
"deleted"
:
""
,
metaNum
,
stbNum
,
vgVersion
,
hashMethod
,
vgNum
);
pIter
=
taosHashIterate
(
dbHash
,
pIter
);
}
}
void
ctgdShowClusterCache
(
SCatalog
*
pCtg
)
{
if
(
!
gCTGDebug
.
cacheEnable
||
NULL
==
pCtg
)
{
return
;
}
ctgDebug
(
"## cluster %"
PRIx64
" %p cache Info BEGIN ##"
,
pCtg
->
clusterId
,
pCtg
);
ctgDebug
(
"db:%d meta:%d stb:%d dbRent:%d stbRent:%d"
,
ctgdGetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
),
ctgdGetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
),
ctgdGetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_NUM
),
ctgdGetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_RENT_NUM
),
ctgdGetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
));
ctgdShowDBCache
(
pCtg
,
pCtg
->
dbCache
);
ctgDebug
(
"## cluster %"
PRIx64
" %p cache Info END ##"
,
pCtg
->
clusterId
,
pCtg
);
}
int32_t
ctgdShowCacheInfo
(
void
)
{
if
(
!
gCTGDebug
.
cacheEnable
)
{
return
TSDB_CODE_CTG_OUT_OF_SERVICE
;
}
CTG_API_ENTER
();
SCatalog
*
pCtg
=
NULL
;
void
*
pIter
=
taosHashIterate
(
gCtgMgmt
.
pCluster
,
NULL
);
while
(
pIter
)
{
pCtg
=
*
(
SCatalog
**
)
pIter
;
if
(
pCtg
)
{
ctgdShowClusterCache
(
pCtg
);
}
pIter
=
taosHashIterate
(
gCtgMgmt
.
pCluster
,
pIter
);
}
CTG_API_LEAVE
(
TSDB_CODE_SUCCESS
);
}
source/libs/catalog/test/catalogTests.cpp
浏览文件 @
762086c2
...
...
@@ -39,10 +39,10 @@ namespace {
extern
"C"
int32_t
ctgGetTableMetaFromCache
(
struct
SCatalog
*
pCatalog
,
const
SName
*
pTableName
,
STableMeta
**
pTableMeta
,
int32_t
*
exist
,
int32_t
flag
,
uint64_t
*
dbId
);
extern
"C"
int32_t
ctg
Dbg
GetClusterCacheNum
(
struct
SCatalog
*
pCatalog
,
int32_t
type
);
extern
"C"
int32_t
ctg
d
GetClusterCacheNum
(
struct
SCatalog
*
pCatalog
,
int32_t
type
);
extern
"C"
int32_t
ctgActUpdateTbl
(
SCtgMetaAction
*
action
);
extern
"C"
int32_t
ctg
Dbg
EnableDebug
(
char
*
option
);
extern
"C"
int32_t
ctg
Dbg
GetStatNum
(
char
*
option
,
void
*
res
);
extern
"C"
int32_t
ctg
d
EnableDebug
(
char
*
option
);
extern
"C"
int32_t
ctg
d
GetStatNum
(
char
*
option
,
void
*
res
);
void
ctgTestSetRspTableMeta
();
void
ctgTestSetRspCTableMeta
();
...
...
@@ -140,9 +140,9 @@ void ctgTestInitLogFile() {
qDebugFlag
=
159
;
strcpy
(
tsLogDir
,
"/var/log/taos"
);
ctg
Dbg
EnableDebug
(
"api"
);
ctg
Dbg
EnableDebug
(
"meta"
);
ctg
Dbg
EnableDebug
(
"cache"
);
ctg
d
EnableDebug
(
"api"
);
ctg
d
EnableDebug
(
"meta"
);
ctg
d
EnableDebug
(
"cache"
);
if
(
taosInitLog
(
defaultLogFileNamePrefix
,
maxLogFileNum
)
<
0
)
{
printf
(
"failed to open log file in directory:%s
\n
"
,
tsLogDir
);
...
...
@@ -879,7 +879,7 @@ TEST(tableMeta, normalTable) {
ASSERT_EQ
(
vgInfo
.
vgId
,
8
);
ASSERT_EQ
(
vgInfo
.
epSet
.
numOfEps
,
3
);
while
(
0
==
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
))
{
while
(
0
==
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -899,7 +899,7 @@ TEST(tableMeta, normalTable) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
true
)
{
uint32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
uint32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
if
(
0
==
n
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -994,7 +994,7 @@ TEST(tableMeta, childTableCase) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
true
)
{
uint32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
uint32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
if
(
0
==
n
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1103,7 +1103,7 @@ TEST(tableMeta, superTableCase) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
true
)
{
uint32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
uint32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
if
(
0
==
n
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1130,7 +1130,7 @@ TEST(tableMeta, superTableCase) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
true
)
{
uint32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
uint32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
if
(
2
!=
n
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1228,7 +1228,7 @@ TEST(tableMeta, rmStbMeta) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
true
)
{
uint32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
uint32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
if
(
0
==
n
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1241,8 +1241,8 @@ TEST(tableMeta, rmStbMeta) {
ASSERT_EQ
(
code
,
0
);
while
(
true
)
{
int32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
int32_t
m
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
);
int32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
int32_t
m
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
);
if
(
n
||
m
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1251,11 +1251,11 @@ TEST(tableMeta, rmStbMeta) {
}
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
),
1
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
),
0
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_NUM
),
0
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_RENT_NUM
),
1
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
),
0
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
),
0
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_NUM
),
0
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_RENT_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
),
0
);
catalogDestroy
();
memset
(
&
gCtgMgmt
,
0
,
sizeof
(
gCtgMgmt
));
...
...
@@ -1298,7 +1298,7 @@ TEST(tableMeta, updateStbMeta) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
true
)
{
uint32_t
n
=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
uint32_t
n
=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
);
if
(
0
==
n
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1318,7 +1318,7 @@ TEST(tableMeta, updateStbMeta) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
!=
3
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -1326,11 +1326,11 @@ TEST(tableMeta, updateStbMeta) {
}
}
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
),
1
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
),
1
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_NUM
),
1
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_RENT_NUM
),
1
);
ASSERT_EQ
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_DB_RENT_NUM
),
1
);
ASSERT_EQ
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_STB_RENT_NUM
),
1
);
code
=
catalogGetTableMeta
(
pCtg
,
mockPointer
,
(
const
SEpSet
*
)
mockPointer
,
&
n
,
&
tableMeta
);
ASSERT_EQ
(
code
,
0
);
...
...
@@ -1388,7 +1388,7 @@ TEST(refreshGetMeta, normal2normal) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -1409,7 +1409,7 @@ TEST(refreshGetMeta, normal2normal) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
taosMemoryFreeClear
(
tableMeta
);
while
(
0
==
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
while
(
0
==
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -1467,7 +1467,7 @@ TEST(refreshGetMeta, normal2notexist) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -1488,7 +1488,7 @@ TEST(refreshGetMeta, normal2notexist) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
taosMemoryFreeClear
(
tableMeta
);
while
(
0
==
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
while
(
0
==
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -1541,7 +1541,7 @@ TEST(refreshGetMeta, normal2child) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -1562,7 +1562,7 @@ TEST(refreshGetMeta, normal2child) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
taosMemoryFreeClear
(
tableMeta
);
while
(
0
==
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
while
(
0
==
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -1625,7 +1625,7 @@ TEST(refreshGetMeta, stable2child) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -1647,7 +1647,7 @@ TEST(refreshGetMeta, stable2child) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
taosMemoryFreeClear
(
tableMeta
);
while
(
0
==
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
while
(
0
==
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -1710,7 +1710,7 @@ TEST(refreshGetMeta, stable2stable) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -1732,7 +1732,7 @@ TEST(refreshGetMeta, stable2stable) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
taosMemoryFreeClear
(
tableMeta
);
while
(
0
==
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
while
(
0
==
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -1798,7 +1798,7 @@ TEST(refreshGetMeta, child2stable) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -1818,7 +1818,7 @@ TEST(refreshGetMeta, child2stable) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
taosMemoryFreeClear
(
tableMeta
);
while
(
2
!=
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
while
(
2
!=
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
))
{
taosMsleep
(
50
);
}
...
...
@@ -2015,7 +2015,7 @@ TEST(dbVgroup, getSetDbVgroupCase) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
>
0
)
{
break
;
}
...
...
@@ -2041,7 +2041,7 @@ TEST(dbVgroup, getSetDbVgroupCase) {
while
(
true
)
{
uint64_t
n
=
0
;
ctg
Dbg
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
ctg
d
GetStatNum
(
"runtime.qDoneNum"
,
(
void
*
)
&
n
);
if
(
n
!=
3
)
{
taosMsleep
(
50
);
}
else
{
...
...
@@ -2266,7 +2266,7 @@ TEST(rentTest, allRent) {
ASSERT_EQ
(
tableMeta
->
tableInfo
.
precision
,
1
);
ASSERT_EQ
(
tableMeta
->
tableInfo
.
rowSize
,
12
);
while
(
ctg
Dbg
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
)
<
i
)
{
while
(
ctg
d
GetClusterCacheNum
(
pCtg
,
CTG_DBG_META_NUM
)
<
i
)
{
taosMsleep
(
50
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录