Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
9520ef4b
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
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看板
“3be59e4e24ef1f478685da85d1e76b17485295c2”上不存在“tests/pytest/account/account_del.py”
未验证
提交
9520ef4b
编写于
10月 25, 2022
作者:
S
Shengliang Guan
提交者:
GitHub
10月 25, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #17613 from taosdata/enh/TD-19460
enh: redistribute vgroup
上级
414fe9c0
eae23f51
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
59 addition
and
19 deletion
+59
-19
source/dnode/mgmt/mgmt_vnode/src/vmWorker.c
source/dnode/mgmt/mgmt_vnode/src/vmWorker.c
+4
-0
source/dnode/mnode/impl/src/mndTrans.c
source/dnode/mnode/impl/src/mndTrans.c
+8
-2
source/dnode/mnode/impl/src/mndVgroup.c
source/dnode/mnode/impl/src/mndVgroup.c
+40
-12
source/util/src/tqueue.c
source/util/src/tqueue.c
+2
-0
tests/script/jenkins/basic.txt
tests/script/jenkins/basic.txt
+5
-5
未找到文件。
source/dnode/mgmt/mgmt_vnode/src/vmWorker.c
浏览文件 @
9520ef4b
...
...
@@ -307,6 +307,10 @@ int32_t vmGetQueueSize(SVnodeMgmt *pMgmt, int32_t vgId, EQueueType qtype) {
}
vmReleaseVnode
(
pMgmt
,
pVnode
);
}
if
(
size
<
0
)
{
dError
(
"vgId:%d, can't get size from queue since %s, qtype:%d"
,
vgId
,
terrstr
(),
qtype
);
size
=
0
;
}
return
size
;
}
...
...
source/dnode/mnode/impl/src/mndTrans.c
浏览文件 @
9520ef4b
...
...
@@ -918,13 +918,19 @@ static void mndTransSendRpcRsp(SMnode *pMnode, STrans *pTrans) {
sendRsp
=
true
;
}
}
else
{
if
(
pTrans
->
stage
==
TRN_STAGE_REDO_ACTION
&&
pTrans
->
failedTimes
>
6
)
{
if
(
pTrans
->
stage
==
TRN_STAGE_REDO_ACTION
&&
((
code
==
TSDB_CODE_APP_NOT_READY
&&
pTrans
->
failedTimes
>
60
)
||
(
code
!=
TSDB_CODE_APP_NOT_READY
&&
pTrans
->
failedTimes
>
6
)))
{
if
(
code
==
0
)
code
=
TSDB_CODE_MND_TRANS_UNKNOW_ERROR
;
sendRsp
=
true
;
}
}
if
(
!
sendRsp
)
return
;
if
(
!
sendRsp
)
{
return
;
}
else
{
mInfo
(
"trans:%d, send rsp, stage:%s failedTimes:%d code:0x%x"
,
pTrans
->
id
,
mndTransStr
(
pTrans
->
stage
),
pTrans
->
failedTimes
,
code
);
}
int32_t
size
=
taosArrayGetSize
(
pTrans
->
pRpcArray
);
if
(
size
<=
0
)
return
;
...
...
source/dnode/mnode/impl/src/mndVgroup.c
浏览文件 @
9520ef4b
...
...
@@ -260,6 +260,12 @@ void *mndBuildCreateVnodeReq(SMnode *pMnode, SDnodeObj *pDnode, SDbObj *pDb, SVg
return
NULL
;
}
mInfo
(
"vgId:%d, build create vnode req, replica:%d selfIndex:%d strict:%d"
,
createReq
.
vgId
,
createReq
.
replica
,
createReq
.
selfIndex
,
createReq
.
strict
);
for
(
int32_t
i
=
0
;
i
<
createReq
.
replica
;
++
i
)
{
mInfo
(
"vgId:%d, replica:%d ep:%s:%u"
,
createReq
.
vgId
,
i
,
createReq
.
replicas
[
i
].
fqdn
,
createReq
.
replicas
[
i
].
port
);
}
int32_t
contLen
=
tSerializeSCreateVnodeReq
(
NULL
,
0
,
&
createReq
);
if
(
contLen
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
...
...
@@ -293,6 +299,7 @@ static void *mndBuildAlterVnodeConfigReq(SMnode *pMnode, SDbObj *pDb, SVgObj *pV
alterReq
.
strict
=
pDb
->
cfg
.
strict
;
alterReq
.
cacheLast
=
pDb
->
cfg
.
cacheLast
;
mInfo
(
"vgId:%d, build alter vnode config req"
,
pVgroup
->
vgId
);
int32_t
contLen
=
tSerializeSAlterVnodeConfigReq
(
NULL
,
0
,
&
alterReq
);
if
(
contLen
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
...
...
@@ -342,7 +349,7 @@ static void *mndBuildAlterVnodeReplicaReq(SMnode *pMnode, SDbObj *pDb, SVgObj *p
}
}
alterReq
.
replica
=
pVgroup
->
replica
;
mInfo
(
"vgId:%d,
start to alter vnode
, replica:%d selfIndex:%d strict:%d"
,
alterReq
.
vgId
,
alterReq
.
replica
,
mInfo
(
"vgId:%d,
build alter vnode req
, replica:%d selfIndex:%d strict:%d"
,
alterReq
.
vgId
,
alterReq
.
replica
,
alterReq
.
selfIndex
,
alterReq
.
strict
);
for
(
int32_t
i
=
0
;
i
<
alterReq
.
replica
;
++
i
)
{
mInfo
(
"vgId:%d, replica:%d ep:%s:%u"
,
alterReq
.
vgId
,
i
,
alterReq
.
replicas
[
i
].
fqdn
,
alterReq
.
replicas
[
i
].
port
);
...
...
@@ -377,6 +384,7 @@ void *mndBuildDropVnodeReq(SMnode *pMnode, SDnodeObj *pDnode, SDbObj *pDb, SVgOb
memcpy
(
dropReq
.
db
,
pDb
->
name
,
TSDB_DB_FNAME_LEN
);
dropReq
.
dbUid
=
pDb
->
uid
;
mInfo
(
"vgId:%d, build drop vnode req"
,
dropReq
.
vgId
);
int32_t
contLen
=
tSerializeSDropVnodeReq
(
NULL
,
0
,
&
dropReq
);
if
(
contLen
<
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
...
...
@@ -1185,9 +1193,21 @@ static int32_t mndAddIncVgroupReplicaToTrans(SMnode *pMnode, STrans *pTrans, SDb
pGid
->
dnodeId
=
newDnodeId
;
pGid
->
syncState
=
TAOS_SYNC_STATE_ERROR
;
if
(
pVgroup
->
replica
==
2
)
{
if
(
mndAddCreateVnodeAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pGid
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
-
1
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
0
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeConfirmAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
)
!=
0
)
return
-
1
;
}
else
if
(
pVgroup
->
replica
==
4
)
{
if
(
mndAddCreateVnodeAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pGid
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
0
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
1
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
2
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeConfirmAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
)
!=
0
)
return
-
1
;
}
else
{
mError
(
"vgId:%d, failed to add 1 vnode since invalid replica:%d"
,
pVgroup
->
vgId
,
pVgroup
->
replica
);
terrno
=
TSDB_CODE_MND_APP_ERROR
;
return
-
1
;
}
return
0
;
}
...
...
@@ -1212,9 +1232,21 @@ static int32_t mndAddDecVgroupReplicaFromTrans(SMnode *pMnode, STrans *pTrans, S
memcpy
(
pGid
,
&
pVgroup
->
vnodeGid
[
pVgroup
->
replica
],
sizeof
(
SVnodeGid
));
memset
(
&
pVgroup
->
vnodeGid
[
pVgroup
->
replica
],
0
,
sizeof
(
SVnodeGid
));
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
-
1
)
!=
0
)
return
-
1
;
if
(
pVgroup
->
replica
==
1
)
{
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
0
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddDropVnodeAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
&
delGid
,
true
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeConfirmAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
)
!=
0
)
return
-
1
;
}
else
if
(
pVgroup
->
replica
==
3
)
{
if
(
mndAddDropVnodeAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
&
delGid
,
true
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
0
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
1
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeReplicaAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
,
pVgroup
->
vnodeGid
[
2
].
dnodeId
)
!=
0
)
return
-
1
;
if
(
mndAddAlterVnodeConfirmAction
(
pMnode
,
pTrans
,
pDb
,
pVgroup
)
!=
0
)
return
-
1
;
}
else
{
mError
(
"vgId:%d, failed to remove 1 vnode since invalid replica:%d"
,
pVgroup
->
vgId
,
pVgroup
->
replica
);
terrno
=
TSDB_CODE_MND_APP_ERROR
;
return
-
1
;
}
return
0
;
}
...
...
@@ -1334,9 +1366,6 @@ _OVER:
}
static
int32_t
mndProcessRedistributeVgroupMsg
(
SRpcMsg
*
pReq
)
{
#if 1
return
TSDB_CODE_OPS_NOT_SUPPORT
;
#else
SMnode
*
pMnode
=
pReq
->
info
.
node
;
SDnodeObj
*
pNew1
=
NULL
;
SDnodeObj
*
pNew2
=
NULL
;
...
...
@@ -1530,7 +1559,6 @@ _OVER:
mndReleaseDb
(
pMnode
,
pDb
);
return
code
;
#endif
}
static
int32_t
mndCheckDnodeMemory
(
SMnode
*
pMnode
,
SDbObj
*
pOldDb
,
SDbObj
*
pNewDb
,
SVgObj
*
pOldVgroup
,
...
...
source/util/src/tqueue.c
浏览文件 @
9520ef4b
...
...
@@ -137,6 +137,8 @@ int32_t taosQueueItemSize(STaosQueue *queue) {
taosThreadMutexLock
(
&
queue
->
mutex
);
int32_t
numOfItems
=
queue
->
numOfItems
;
taosThreadMutexUnlock
(
&
queue
->
mutex
);
uTrace
(
"queue:%p, numOfItems:%d memOfItems:%"
PRId64
,
queue
,
queue
->
numOfItems
,
queue
->
memOfItems
);
return
numOfItems
;
}
...
...
tests/script/jenkins/basic.txt
浏览文件 @
9520ef4b
...
...
@@ -50,11 +50,11 @@
# unsupport ./test.sh -f tsim/dnode/drop_dnode_has_multi_vnode_replica1.sim
# unsupport ./test.sh -f tsim/dnode/drop_dnode_has_multi_vnode_replica3.sim
./test.sh -f tsim/dnode/offline_reason.sim
# unsupport
./test.sh -f tsim/dnode/redistribute_vgroup_replica1.sim
# unsupport
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v1_leader.sim
# unsupport
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v1_follower.sim
# unsupport
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v2.sim
# unsupport
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v3.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica1.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v1_leader.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v1_follower.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v2.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v3.sim
# unsupport ./test.sh -f tsim/dnode/vnode_clean.sim
./test.sh -f tsim/dnode/use_dropped_dnode.sim
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录