Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
108863e4
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看板
提交
108863e4
编写于
1月 12, 2023
作者:
X
Xiaoyu Wang
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/main' into fix/main_bugfix_wxy
上级
b9c870b4
6af99d75
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
29 addition
and
16 deletion
+29
-16
source/libs/sync/src/syncRaftLog.c
source/libs/sync/src/syncRaftLog.c
+4
-3
source/libs/tdb/src/db/tdbBtree.c
source/libs/tdb/src/db/tdbBtree.c
+8
-6
source/libs/wal/src/walWrite.c
source/libs/wal/src/walWrite.c
+0
-5
tests/system-test/6-cluster/5dnode3mnodeDrop.py
tests/system-test/6-cluster/5dnode3mnodeDrop.py
+17
-2
未找到文件。
source/libs/sync/src/syncRaftLog.c
浏览文件 @
108863e4
...
...
@@ -192,6 +192,8 @@ SyncTerm raftLogLastTerm(struct SSyncLogStore* pLogStore) {
return
SYNC_TERM_INVALID
;
}
static
inline
bool
raftLogForceSync
(
SSyncRaftEntry
*
pEntry
)
{
return
(
pEntry
->
originalRpcType
==
TDMT_VND_COMMIT
);
}
static
int32_t
raftLogAppendEntry
(
struct
SSyncLogStore
*
pLogStore
,
SSyncRaftEntry
*
pEntry
)
{
SSyncLogStoreData
*
pData
=
pLogStore
->
data
;
SWal
*
pWal
=
pData
->
pWal
;
...
...
@@ -219,9 +221,8 @@ static int32_t raftLogAppendEntry(struct SSyncLogStore* pLogStore, SSyncRaftEntr
ASSERT
(
pEntry
->
index
==
index
);
if
(
pEntry
->
originalRpcType
==
TDMT_VND_COMMIT
)
{
walFsync
(
pWal
,
true
);
}
bool
forceSync
=
raftLogForceSync
(
pEntry
);
walFsync
(
pWal
,
forceSync
);
sNTrace
(
pData
->
pSyncNode
,
"write index:%"
PRId64
", type:%s, origin type:%s, elapsed:%"
PRId64
,
pEntry
->
index
,
TMSG_INFO
(
pEntry
->
msgType
),
TMSG_INFO
(
pEntry
->
originalRpcType
),
tsElapsed
);
...
...
source/libs/tdb/src/db/tdbBtree.c
浏览文件 @
108863e4
...
...
@@ -1316,11 +1316,11 @@ static int tdbBtreeDecodePayload(SPage *pPage, const SCell *pCell, int nHeader,
}
TDB_CELLDECODER_SET_FREE_KEY
(
pDecoder
);
memcpy
(
pDecoder
->
pKey
,
pCell
+
nHeader
,
nLocal
-
4
);
nLeft
-=
nLocal
-
4
;
nLeftKey
-=
nLocal
-
4
;
memcpy
(
pDecoder
->
pKey
,
pCell
+
nHeader
,
nLocal
-
nHeader
-
sizeof
(
pgno
)
);
nLeft
-=
nLocal
-
nHeader
-
sizeof
(
pgno
)
;
nLeftKey
-=
nLocal
-
nHeader
-
sizeof
(
pgno
)
;
memcpy
(
&
pgno
,
pCell
+
n
Header
+
nLocal
-
4
,
sizeof
(
pgno
));
memcpy
(
&
pgno
,
pCell
+
n
Local
-
sizeof
(
pgno
)
,
sizeof
(
pgno
));
int
lastKeyPageSpace
=
0
;
// load left key & val to ovpages
...
...
@@ -1346,9 +1346,11 @@ static int tdbBtreeDecodePayload(SPage *pPage, const SCell *pCell, int nHeader,
if
(
lastKeyPage
)
{
if
(
lastKeyPageSpace
>=
vLen
)
{
pDecoder
->
pVal
=
ofpCell
+
kLen
-
nLeftKey
;
if
(
vLen
>
0
)
{
pDecoder
->
pVal
=
ofpCell
+
kLen
-
nLeftKey
;
nLeft
-=
vLen
;
nLeft
-=
vLen
;
}
pgno
=
0
;
}
else
{
// read partial val to local
...
...
source/libs/wal/src/walWrite.c
浏览文件 @
108863e4
...
...
@@ -637,11 +637,6 @@ int32_t walWrite(SWal *pWal, int64_t index, tmsg_t msgType, const void *body, in
void
walFsync
(
SWal
*
pWal
,
bool
forceFsync
)
{
taosThreadMutexLock
(
&
pWal
->
mutex
);
if
(
forceFsync
||
(
pWal
->
cfg
.
level
==
TAOS_WAL_FSYNC
&&
pWal
->
cfg
.
fsyncPeriod
==
0
))
{
wTrace
(
"vgId:%d, fileId:%"
PRId64
".idx, do fsync"
,
pWal
->
cfg
.
vgId
,
walGetCurFileFirstVer
(
pWal
));
if
(
taosFsyncFile
(
pWal
->
pIdxFile
)
<
0
)
{
wError
(
"vgId:%d, file:%"
PRId64
".idx, fsync failed since %s"
,
pWal
->
cfg
.
vgId
,
walGetCurFileFirstVer
(
pWal
),
strerror
(
errno
));
}
wTrace
(
"vgId:%d, fileId:%"
PRId64
".log, do fsync"
,
pWal
->
cfg
.
vgId
,
walGetCurFileFirstVer
(
pWal
));
if
(
taosFsyncFile
(
pWal
->
pLogFile
)
<
0
)
{
wError
(
"vgId:%d, file:%"
PRId64
".log, fsync failed since %s"
,
pWal
->
cfg
.
vgId
,
walGetCurFileFirstVer
(
pWal
),
...
...
tests/system-test/6-cluster/5dnode3mnodeDrop.py
浏览文件 @
108863e4
...
...
@@ -112,7 +112,8 @@ class TDTestCase:
dnode_first_port
=
dnode
.
cfgDict
[
"firstEp"
].
split
(
":"
)[
-
1
]
cmd
=
f
" taos -h
{
dnode_first_host
}
-P
{
dnode_first_port
}
-s ' create dnode
\"
{
dnode_id
}
\"
' ;"
tdLog
.
debug
(
cmd
)
os
.
system
(
cmd
)
if
os
.
system
(
cmd
)
!=
0
:
raise
Exception
(
"failed to execute system command. cmd: %s"
%
cmd
)
time
.
sleep
(
2
)
tdLog
.
info
(
" create cluster with %d dnode done! "
%
dnodes_nums
)
...
...
@@ -292,6 +293,8 @@ class TDTestCase:
tdLog
.
debug
(
"drop mnode %d successfully"
%
(
i
+
1
))
break
count
+=
1
self
.
wait_for_transactions
(
20
)
tdLog
.
debug
(
"create mnode on dnode %d"
%
(
i
+
1
))
tdSql
.
execute
(
"create mnode on dnode %d"
%
(
i
+
1
))
count
=
0
...
...
@@ -299,12 +302,24 @@ class TDTestCase:
time
.
sleep
(
1
)
tdSql
.
query
(
"select * from information_schema.ins_mnodes;"
)
if
tdSql
.
checkRows
(
3
):
tdLog
.
debug
(
"
drop
mnode %d successfully"
%
(
i
+
1
))
tdLog
.
debug
(
"
create
mnode %d successfully"
%
(
i
+
1
))
break
count
+=
1
self
.
wait_for_transactions
(
20
)
dropcount
+=
1
self
.
check3mnode
()
def
wait_for_transactions
(
self
,
timeout
):
count
=
0
while
count
<
timeout
:
time
.
sleep
(
1
)
tdSql
.
query
(
"show transactions;"
)
if
tdSql
.
checkRows
(
0
):
tdLog
.
debug
(
"transactions completed successfully"
)
break
count
+=
1
if
count
>=
timeout
:
tdLog
.
debug
(
"transactions not finished before timeout (%d secs)"
,
timeout
)
def
getConnection
(
self
,
dnode
):
host
=
dnode
.
cfgDict
[
"fqdn"
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录