Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0d11825d
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0d11825d
编写于
12月 26, 2021
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refact trans
上级
3052e8e1
变更
12
展开全部
隐藏空白更改
内联
并排
Showing
12 changed file
with
322 addition
and
196 deletion
+322
-196
include/common/tmsg.h
include/common/tmsg.h
+4
-0
include/common/tmsgdef.h
include/common/tmsgdef.h
+1
-0
source/dnode/mgmt/impl/src/dndTransport.c
source/dnode/mgmt/impl/src/dndTransport.c
+2
-0
source/dnode/mnode/impl/inc/mndDef.h
source/dnode/mnode/impl/inc/mndDef.h
+10
-11
source/dnode/mnode/impl/inc/mndInt.h
source/dnode/mnode/impl/inc/mndInt.h
+1
-0
source/dnode/mnode/impl/inc/mndTrans.h
source/dnode/mnode/impl/inc/mndTrans.h
+1
-5
source/dnode/mnode/impl/src/mndMnode.c
source/dnode/mnode/impl/src/mndMnode.c
+3
-3
source/dnode/mnode/impl/src/mndStb.c
source/dnode/mnode/impl/src/mndStb.c
+3
-3
source/dnode/mnode/impl/src/mndTopic.c
source/dnode/mnode/impl/src/mndTopic.c
+3
-3
source/dnode/mnode/impl/src/mndTrans.c
source/dnode/mnode/impl/src/mndTrans.c
+270
-168
source/dnode/mnode/impl/src/mndVgroup.c
source/dnode/mnode/impl/src/mndVgroup.c
+3
-3
source/dnode/mnode/impl/src/mnode.c
source/dnode/mnode/impl/src/mnode.c
+21
-0
未找到文件。
include/common/tmsg.h
浏览文件 @
0d11825d
...
...
@@ -655,6 +655,10 @@ typedef struct {
SVnodeLoads
vnodeLoads
;
}
SStatusMsg
;
typedef
struct
{
int32_t
reserved
;
}
STransMsg
;
typedef
struct
{
int32_t
dnodeId
;
int32_t
clusterId
;
...
...
include/common/tmsgdef.h
浏览文件 @
0d11825d
...
...
@@ -114,6 +114,7 @@ enum {
TD_DEF_MSG_TYPE
(
TDMT_MND_SHOW
,
"mnode-show"
,
NULL
,
NULL
)
TD_DEF_MSG_TYPE
(
TDMT_MND_SHOW_RETRIEVE
,
"mnode-retrieve"
,
NULL
,
NULL
)
TD_DEF_MSG_TYPE
(
TDMT_MND_STATUS
,
"mnode-status"
,
NULL
,
NULL
)
TD_DEF_MSG_TYPE
(
TDMT_MND_TRANS
,
"mnode-trans"
,
NULL
,
NULL
)
TD_DEF_MSG_TYPE
(
TDMT_MND_GRANT
,
"mnode-grant"
,
NULL
,
NULL
)
TD_DEF_MSG_TYPE
(
TDMT_MND_AUTH
,
"mnode-auth"
,
NULL
,
NULL
)
TD_DEF_MSG_TYPE
(
TDMT_MND_CREATE_TOPIC
,
"mnode-create-topic"
,
NULL
,
NULL
)
...
...
source/dnode/mgmt/impl/src/dndTransport.c
浏览文件 @
0d11825d
...
...
@@ -118,6 +118,8 @@ static void dndInitMsgFp(STransMgmt *pMgmt) {
// message from dnode to mnode
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_GRANT
)]
=
dndProcessMnodeWriteMsg
;
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_GRANT_RSP
)]
=
dndProcessDnodeRsp
;
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_TRANS
)]
=
dndProcessMnodeWriteMsg
;
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_TRANS_RSP
)]
=
dndProcessMnodeWriteMsg
;
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_STATUS
)]
=
dndProcessMnodeWriteMsg
;
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_STATUS_RSP
)]
=
dndProcessDnodeRsp
;
pMgmt
->
msgFp
[
TMSG_INDEX
(
TDMT_MND_AUTH
)]
=
dndProcessMnodeReadMsg
;
...
...
source/dnode/mnode/impl/inc/mndDef.h
浏览文件 @
0d11825d
...
...
@@ -62,10 +62,14 @@ typedef enum {
typedef
enum
{
TRN_STAGE_PREPARE
=
0
,
TRN_STAGE_EXECUTE
=
1
,
TRN_STAGE_ROLLBACK
=
2
,
TRN_STAGE_COMMIT
=
3
,
TRN_STAGE_OVER
=
4
,
TRN_STAGE_REDO_LOG
=
1
,
TRN_STAGE_REDO_ACTION
=
2
,
TRN_STAGE_UNDO_LOG
=
3
,
TRN_STAGE_UNDO_ACTION
=
4
,
TRN_STAGE_COMMIT_LOG
=
5
,
TRN_STAGE_COMMIT
=
6
,
TRN_STAGE_ROLLBACK
=
7
,
TRN_STAGE_FINISHED
=
8
}
ETrnStage
;
typedef
enum
{
TRN_POLICY_ROLLBACK
=
0
,
TRN_POLICY_RETRY
=
1
}
ETrnPolicy
;
...
...
@@ -95,7 +99,8 @@ typedef struct {
int32_t
id
;
ETrnStage
stage
;
ETrnPolicy
policy
;
int32_t
retryTimes
;
int32_t
code
;
int32_t
failedTimes
;
void
*
rpcHandle
;
void
*
rpcAHandle
;
SArray
*
redoLogs
;
...
...
@@ -313,12 +318,6 @@ typedef struct SMnodeMsg {
void
*
pCont
;
}
SMnodeMsg
;
typedef
struct
{
int32_t
id
;
int32_t
code
;
void
*
rpcHandle
;
}
STransMsg
;
#ifdef __cplusplus
}
#endif
...
...
source/dnode/mnode/impl/inc/mndInt.h
浏览文件 @
0d11825d
...
...
@@ -75,6 +75,7 @@ typedef struct SMnode {
int8_t
selfIndex
;
SReplica
replicas
[
TSDB_MAX_REPLICA
];
tmr_h
timer
;
tmr_h
transTimer
;
char
*
path
;
SMnodeCfg
cfg
;
int64_t
checkTime
;
...
...
source/dnode/mnode/impl/inc/mndTrans.h
浏览文件 @
0d11825d
...
...
@@ -44,11 +44,7 @@ int32_t mndTransAppendRedoAction(STrans *pTrans, STransAction *pAction);
int32_t
mndTransAppendUndoAction
(
STrans
*
pTrans
,
STransAction
*
pAction
);
int32_t
mndTransPrepare
(
SMnode
*
pMnode
,
STrans
*
pTrans
);
void
mndTransApply
(
SMnode
*
pMnode
,
SSdbRaw
*
pRaw
,
STransMsg
*
pMsg
,
int32_t
code
);
void
mndTransHandleActionRsp
(
SMnodeMsg
*
pMsg
);
char
*
mndTransStageStr
(
ETrnStage
stage
);
char
*
mndTransPolicyStr
(
ETrnPolicy
policy
);
void
mndTransProcessRsp
(
SMnodeMsg
*
pMsg
);
#ifdef __cplusplus
}
...
...
source/dnode/mnode/impl/src/mndMnode.c
浏览文件 @
0d11825d
...
...
@@ -567,17 +567,17 @@ static int32_t mndProcessDropMnodeReq(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessCreateMnodeRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
static
int32_t
mndProcessAlterMnodeRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
static
int32_t
mndProcessDropMnodeRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
source/dnode/mnode/impl/src/mndStb.c
浏览文件 @
0d11825d
...
...
@@ -552,7 +552,7 @@ static int32_t mndProcessCreateStbMsg(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessCreateStbInRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
@@ -616,7 +616,7 @@ static int32_t mndProcessAlterStbMsg(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessAlterStbInRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
@@ -728,7 +728,7 @@ static int32_t mndProcessDropStbMsg(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessDropStbInRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
source/dnode/mnode/impl/src/mndTopic.c
浏览文件 @
0d11825d
...
...
@@ -524,7 +524,7 @@ static int32_t mndProcessAlterTopicMsg(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessAlterTopicInRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
@@ -636,7 +636,7 @@ static int32_t mndProcessDropTopicMsg(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessDropTopicInRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
@@ -706,7 +706,7 @@ static int32_t mndProcessTopicMetaMsg(SMnodeMsg *pMsg) {
}
static
int32_t
mndProcessCreateTopicInRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
source/dnode/mnode/impl/src/mndTrans.c
浏览文件 @
0d11825d
此差异已折叠。
点击以展开。
source/dnode/mnode/impl/src/mndVgroup.c
浏览文件 @
0d11825d
...
...
@@ -333,17 +333,17 @@ SEpSet mndGetVgroupEpset(SMnode *pMnode, SVgObj *pVgroup) {
}
static
int32_t
mndProcessCreateVnodeRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
static
int32_t
mndProcessAlterVnodeRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
static
int32_t
mndProcessDropVnodeRsp
(
SMnodeMsg
*
pMsg
)
{
mndTrans
HandleAction
Rsp
(
pMsg
);
mndTrans
Process
Rsp
(
pMsg
);
return
0
;
}
...
...
source/dnode/mnode/impl/src/mnode.c
浏览文件 @
0d11825d
...
...
@@ -50,6 +50,20 @@ void mndSendRedirectMsg(SMnode *pMnode, SRpcMsg *pMsg) {
}
}
static
void
mndTransReExecute
(
void
*
param
,
void
*
tmrId
)
{
SMnode
*
pMnode
=
param
;
if
(
mndIsMaster
(
pMnode
))
{
STransMsg
*
pMsg
=
rpcMallocCont
(
sizeof
(
STransMsg
));
SEpSet
epSet
=
{.
inUse
=
0
,
.
numOfEps
=
1
};
epSet
.
port
[
0
]
=
pMnode
->
replicas
[
pMnode
->
selfIndex
].
port
;
memcpy
(
epSet
.
fqdn
[
0
],
pMnode
->
replicas
[
pMnode
->
selfIndex
].
fqdn
,
TSDB_FQDN_LEN
);
SRpcMsg
rpcMsg
=
{.
msgType
=
TDMT_MND_TRANS
,
.
pCont
=
pMsg
,
.
contLen
=
sizeof
(
STransMsg
)};
mndSendMsgToDnode
(
pMnode
,
&
epSet
,
&
rpcMsg
);
}
taosTmrReset
(
mndTransReExecute
,
3000
,
pMnode
,
pMnode
->
timer
,
&
pMnode
->
transTimer
);
}
static
int32_t
mndInitTimer
(
SMnode
*
pMnode
)
{
if
(
pMnode
->
timer
==
NULL
)
{
pMnode
->
timer
=
taosTmrInit
(
5000
,
200
,
3600000
,
"MND"
);
...
...
@@ -60,11 +74,18 @@ static int32_t mndInitTimer(SMnode *pMnode) {
return
-
1
;
}
if
(
taosTmrReset
(
mndTransReExecute
,
1000
,
pMnode
,
pMnode
->
timer
,
&
pMnode
->
transTimer
))
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
0
;
}
static
void
mndCleanupTimer
(
SMnode
*
pMnode
)
{
if
(
pMnode
->
timer
!=
NULL
)
{
taosTmrStop
(
pMnode
->
transTimer
);
pMnode
->
transTimer
=
NULL
;
taosTmrCleanUp
(
pMnode
->
timer
);
pMnode
->
timer
=
NULL
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录