Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
fe115ab0
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看板
提交
fe115ab0
编写于
10月 10, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: support statistics of insert_req
上级
452f2247
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
73 addition
and
6 deletion
+73
-6
source/dnode/mgmt/mgmt_vnode/src/vmHandle.c
source/dnode/mgmt/mgmt_vnode/src/vmHandle.c
+9
-0
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+10
-0
source/dnode/vnode/src/vnd/vnodeCommit.c
source/dnode/vnode/src/vnd/vnodeCommit.c
+39
-0
source/dnode/vnode/src/vnd/vnodeOpen.c
source/dnode/vnode/src/vnd/vnodeOpen.c
+4
-0
source/dnode/vnode/src/vnd/vnodeQuery.c
source/dnode/vnode/src/vnd/vnodeQuery.c
+4
-4
source/dnode/vnode/src/vnd/vnodeSvr.c
source/dnode/vnode/src/vnd/vnodeSvr.c
+7
-2
未找到文件。
source/dnode/mgmt/mgmt_vnode/src/vmHandle.c
浏览文件 @
fe115ab0
...
...
@@ -78,6 +78,15 @@ void vmGetMonitorInfo(SVnodeMgmt *pMgmt, SMonVmInfo *pInfo) {
pMgmt
->
state
.
numOfBatchInsertReqs
=
numOfBatchInsertReqs
;
pMgmt
->
state
.
numOfBatchInsertSuccessReqs
=
numOfBatchInsertSuccessReqs
;
printf
(
"%s:%d: Info: nInsert:%"
PRIi64
", nInsertSuccess:%"
PRIi64
", nBatch:%"
PRIi64
", nBatchSuccess:%"
PRIi64
"
\n
"
,
__func__
,
__LINE__
,
pInfo
->
vstat
.
numOfInsertReqs
,
pInfo
->
vstat
.
numOfInsertSuccessReqs
,
pInfo
->
vstat
.
numOfBatchInsertReqs
,
pInfo
->
vstat
.
numOfBatchInsertSuccessReqs
);
printf
(
"%s:%d: Mgmt: nInsert:%"
PRIi64
", nInsertSuccess:%"
PRIi64
", nBatch:%"
PRIi64
", nBatchSuccess:%"
PRIi64
"
\n
"
,
__func__
,
__LINE__
,
pMgmt
->
state
.
numOfInsertReqs
,
pMgmt
->
state
.
numOfInsertSuccessReqs
,
pMgmt
->
state
.
numOfBatchInsertReqs
,
pMgmt
->
state
.
numOfBatchInsertSuccessReqs
);
tfsGetMonitorInfo
(
pMgmt
->
pTfs
,
&
pInfo
->
tfs
);
taosArrayDestroy
(
pVloads
);
}
...
...
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
fe115ab0
...
...
@@ -56,6 +56,7 @@ typedef struct SSma SSma;
typedef
struct
STsdb
STsdb
;
typedef
struct
STQ
STQ
;
typedef
struct
SVState
SVState
;
typedef
struct
SVStatis
SVStatis
;
typedef
struct
SVBufPool
SVBufPool
;
typedef
struct
SQWorker
SQHandle
;
typedef
struct
STsdbKeepCfg
STsdbKeepCfg
;
...
...
@@ -284,9 +285,17 @@ struct SVState {
int64_t
commitTerm
;
};
struct
SVStatis
{
int64_t
nInsert
;
int64_t
nInsertSuccess
;
int64_t
nBatchInsert
;
int64_t
nBatchInsertSuccess
;
};
struct
SVnodeInfo
{
SVnodeCfg
config
;
SVState
state
;
SVStatis
statis
;
};
typedef
enum
{
...
...
@@ -309,6 +318,7 @@ struct SVnode {
char
*
path
;
SVnodeCfg
config
;
SVState
state
;
SVStatis
statis
;
STfs
*
pTfs
;
SMsgCb
msgCb
;
TdThreadMutex
mutex
;
...
...
source/dnode/vnode/src/vnd/vnodeCommit.c
浏览文件 @
fe115ab0
...
...
@@ -227,6 +227,11 @@ int vnodeCommit(SVnode *pVnode) {
info
.
state
.
committed
=
pVnode
->
state
.
applied
;
info
.
state
.
commitTerm
=
pVnode
->
state
.
applyTerm
;
info
.
state
.
commitID
=
pVnode
->
state
.
commitID
;
info
.
statis
.
nInsert
=
pVnode
->
statis
.
nInsert
;
info
.
statis
.
nInsertSuccess
=
pVnode
->
statis
.
nInsertSuccess
;
info
.
statis
.
nBatchInsert
=
pVnode
->
statis
.
nBatchInsert
;
info
.
statis
.
nBatchInsertSuccess
=
pVnode
->
statis
.
nBatchInsertSuccess
;
snprintf
(
dir
,
TSDB_FILENAME_LEN
,
"%s%s%s"
,
tfsGetPrimaryPath
(
pVnode
->
pTfs
),
TD_DIRSEP
,
pVnode
->
path
);
if
(
vnodeSaveInfo
(
dir
,
&
info
)
<
0
)
{
ASSERT
(
0
);
...
...
@@ -352,6 +357,32 @@ static int vnodeDecodeState(const SJson *pJson, void *pObj) {
return
0
;
}
static
int
vnodeEncodeStatis
(
const
void
*
pObj
,
SJson
*
pJson
)
{
const
SVStatis
*
pStatis
=
(
SVStatis
*
)
pObj
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"insert"
,
pStatis
->
nInsert
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"insert success"
,
pStatis
->
nInsertSuccess
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"batch insert"
,
pStatis
->
nBatchInsert
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"batch insert success"
,
pStatis
->
nBatchInsertSuccess
)
<
0
)
return
-
1
;
return
0
;
}
static
int
vnodeDecodeStatis
(
const
SJson
*
pJson
,
void
*
pObj
)
{
SVStatis
*
pStatis
=
(
SVStatis
*
)
pObj
;
int32_t
code
;
tjsonGetNumberValue
(
pJson
,
"insert"
,
pStatis
->
nInsert
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"insert success"
,
pStatis
->
nInsertSuccess
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"batch insert"
,
pStatis
->
nBatchInsert
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"batch insert success"
,
pStatis
->
nBatchInsertSuccess
,
code
);
if
(
code
<
0
)
return
-
1
;
return
0
;
}
static
int
vnodeEncodeInfo
(
const
SVnodeInfo
*
pInfo
,
char
**
ppData
)
{
SJson
*
pJson
;
char
*
pData
;
...
...
@@ -371,6 +402,10 @@ static int vnodeEncodeInfo(const SVnodeInfo *pInfo, char **ppData) {
goto
_err
;
}
if
(
tjsonAddObject
(
pJson
,
"statis"
,
vnodeEncodeStatis
,
(
void
*
)
&
pInfo
->
statis
)
<
0
)
{
goto
_err
;
}
pData
=
tjsonToString
(
pJson
);
if
(
pData
==
NULL
)
{
goto
_err
;
...
...
@@ -402,6 +437,10 @@ static int vnodeDecodeInfo(uint8_t *pData, SVnodeInfo *pInfo) {
goto
_err
;
}
if
(
tjsonToObject
(
pJson
,
"statis"
,
vnodeDecodeStatis
,
(
void
*
)
&
pInfo
->
statis
)
<
0
)
{
goto
_err
;
}
tjsonDelete
(
pJson
);
return
0
;
...
...
source/dnode/vnode/src/vnd/vnodeOpen.c
浏览文件 @
fe115ab0
...
...
@@ -85,6 +85,10 @@ SVnode *vnodeOpen(const char *path, STfs *pTfs, SMsgCb msgCb) {
pVnode
->
state
.
applied
=
info
.
state
.
committed
;
pVnode
->
state
.
commitID
=
info
.
state
.
commitID
;
pVnode
->
state
.
commitTerm
=
info
.
state
.
commitTerm
;
pVnode
->
statis
.
nInsert
=
info
.
statis
.
nInsert
;
pVnode
->
statis
.
nInsertSuccess
=
info
.
statis
.
nInsertSuccess
;
pVnode
->
statis
.
nBatchInsert
=
info
.
statis
.
nBatchInsert
;
pVnode
->
statis
.
nBatchInsertSuccess
=
info
.
statis
.
nBatchInsertSuccess
;
pVnode
->
pTfs
=
pTfs
;
pVnode
->
msgCb
=
msgCb
;
taosThreadMutexInit
(
&
pVnode
->
lock
,
NULL
);
...
...
source/dnode/vnode/src/vnd/vnodeQuery.c
浏览文件 @
fe115ab0
...
...
@@ -375,10 +375,10 @@ int32_t vnodeGetLoad(SVnode *pVnode, SVnodeLoad *pLoad) {
pLoad
->
compStorage
=
(
int64_t
)
2
*
1073741824
;
pLoad
->
pointsWritten
=
100
;
pLoad
->
numOfSelectReqs
=
1
;
pLoad
->
numOfInsertReqs
=
3
;
pLoad
->
numOfInsertSuccessReqs
=
2
;
pLoad
->
numOfBatchInsertReqs
=
5
;
pLoad
->
numOfBatchInsertSuccessReqs
=
4
;
pLoad
->
numOfInsertReqs
=
atomic_load_64
(
&
pVnode
->
statis
.
nInsert
)
;
pLoad
->
numOfInsertSuccessReqs
=
atomic_load_64
(
&
pVnode
->
statis
.
nInsertSuccess
)
;
pLoad
->
numOfBatchInsertReqs
=
atomic_load_64
(
&
pVnode
->
statis
.
nBatchInsert
)
;
pLoad
->
numOfBatchInsertSuccessReqs
=
atomic_load_64
(
&
pVnode
->
statis
.
nBatchInsertSuccess
)
;
return
0
;
}
...
...
source/dnode/vnode/src/vnd/vnodeSvr.c
浏览文件 @
fe115ab0
...
...
@@ -812,10 +812,10 @@ static int32_t vnodeProcessSubmitReq(SVnode *pVnode, int64_t version, void *pReq
SSubmitReq
*
pSubmitReq
=
(
SSubmitReq
*
)
pReq
;
SSubmitRsp
submitRsp
=
{
0
};
SSubmitMsgIter
msgIter
=
{
0
};
SSubmitBlk
*
pBlock
;
SSubmitBlk
*
pBlock
=
NULL
;
SVCreateTbReq
createTbReq
=
{
0
};
SDecoder
decoder
=
{
0
};
int32_t
nRows
;
int32_t
nRows
=
0
;
int32_t
tsize
,
ret
;
SEncoder
encoder
=
{
0
};
SArray
*
newTbUids
=
NULL
;
...
...
@@ -823,6 +823,7 @@ static int32_t vnodeProcessSubmitReq(SVnode *pVnode, int64_t version, void *pReq
pRsp
->
code
=
0
;
pSubmitReq
->
version
=
version
;
atomic_fetch_add_64
(
&
pVnode
->
statis
.
nBatchInsert
,
1
);
#ifdef TD_DEBUG_PRINT_ROW
vnodeDebugPrintSubmitMsg
(
pVnode
,
pReq
,
__func__
);
...
...
@@ -942,12 +943,16 @@ _exit:
taosArrayDestroyEx
(
submitRsp
.
pArray
,
tFreeSSubmitBlkRsp
);
atomic_fetch_add_64
(
&
pVnode
->
statis
.
nInsert
,
submitRsp
.
numOfRows
);
atomic_fetch_add_64
(
&
pVnode
->
statis
.
nInsertSuccess
,
submitRsp
.
affectedRows
);
// TODO: the partial success scenario and the error case
// => If partial success, extract the success submitted rows and reconstruct a new submit msg, and push to level
// 1/level 2.
// TODO: refactor
if
((
terrno
==
TSDB_CODE_SUCCESS
)
&&
(
pRsp
->
code
==
TSDB_CODE_SUCCESS
))
{
tdProcessRSmaSubmit
(
pVnode
->
pSma
,
pReq
,
STREAM_INPUT__DATA_SUBMIT
);
atomic_fetch_add_64
(
&
pVnode
->
statis
.
nBatchInsertSuccess
,
1
);
}
vDebug
(
"vgId:%d, submit success, index:%"
PRId64
,
pVnode
->
config
.
vgId
,
version
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录