Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小楼昨夜-听风雨
TDengine
提交
4e18484b
T
TDengine
项目概览
小楼昨夜-听风雨
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4e18484b
编写于
9月 10, 2020
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
TD-1382 TD-1383
上级
880aaf57
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
29 deletion
+41
-29
src/inc/tsync.h
src/inc/tsync.h
+3
-0
src/sync/src/syncMain.c
src/sync/src/syncMain.c
+33
-28
src/vnode/src/vnodeMain.c
src/vnode/src/vnodeMain.c
+5
-1
未找到文件。
src/inc/tsync.h
浏览文件 @
4e18484b
...
...
@@ -103,6 +103,9 @@ typedef struct {
typedef
void
*
tsync_h
;
int32_t
syncInit
();
void
syncCleanUp
();
tsync_h
syncStart
(
const
SSyncInfo
*
);
void
syncStop
(
tsync_h
shandle
);
int32_t
syncReconfig
(
tsync_h
shandle
,
const
SSyncCfg
*
);
...
...
src/sync/src/syncMain.c
浏览文件 @
4e18484b
...
...
@@ -42,11 +42,9 @@ int tsSyncTimer = 1;
int
tsSyncNum
;
// number of sync in process in whole system
char
tsNodeFqdn
[
TSDB_FQDN_LEN
];
static
int
tsNodeNum
;
// number of nodes in system
static
ttpool_h
tsTcpPool
;
static
void
*
syncTmrCtrl
=
NULL
;
static
void
*
vgIdHash
;
static
pthread_once_t
syncModuleInit
=
PTHREAD_ONCE_INIT
;
// local functions
static
void
syncProcessSyncRequest
(
char
*
pMsg
,
SSyncPeer
*
pPeer
);
...
...
@@ -75,7 +73,7 @@ char* syncRole[] = {
"master"
};
static
void
syncModuleInitFunc
()
{
int32_t
syncInit
()
{
SPoolInfo
info
;
info
.
numOfThreads
=
tsSyncTcpThreads
;
...
...
@@ -87,25 +85,52 @@ static void syncModuleInitFunc() {
info
.
processIncomingConn
=
syncProcessIncommingConnection
;
tsTcpPool
=
taosOpenTcpThreadPool
(
&
info
);
if
(
tsTcpPool
==
NULL
)
return
;
if
(
tsTcpPool
==
NULL
)
{
sError
(
"failed to init tcpPool"
);
return
-
1
;
}
syncTmrCtrl
=
taosTmrInit
(
1000
,
50
,
10000
,
"SYNC"
);
if
(
syncTmrCtrl
==
NULL
)
{
sError
(
"failed to init tmrCtrl"
);
taosCloseTcpThreadPool
(
tsTcpPool
);
tsTcpPool
=
NULL
;
return
;
return
-
1
;
}
vgIdHash
=
taosHashInit
(
TSDB_MIN_VNODES
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
true
,
true
);
if
(
vgIdHash
==
NULL
)
{
sError
(
"failed to init vgIdHash"
);
taosTmrCleanUp
(
syncTmrCtrl
);
taosCloseTcpThreadPool
(
tsTcpPool
);
tsTcpPool
=
NULL
;
syncTmrCtrl
=
NULL
;
return
;
}
return
-
1
;
}
tstrncpy
(
tsNodeFqdn
,
tsLocalFqdn
,
sizeof
(
tsNodeFqdn
));
sInfo
(
"sync module initialized successfully"
);
return
0
;
}
void
syncCleanUp
()
{
if
(
tsTcpPool
)
{
taosCloseTcpThreadPool
(
tsTcpPool
);
tsTcpPool
=
NULL
;
}
if
(
syncTmrCtrl
)
{
taosTmrCleanUp
(
syncTmrCtrl
);
syncTmrCtrl
=
NULL
;
}
if
(
vgIdHash
)
{
vgIdHash
=
NULL
;
taosHashCleanup
(
vgIdHash
);
}
sInfo
(
"sync module is cleaned up"
);
}
void
*
syncStart
(
const
SSyncInfo
*
pInfo
)
{
...
...
@@ -118,15 +143,6 @@ void *syncStart(const SSyncInfo *pInfo) {
return
NULL
;
}
pthread_once
(
&
syncModuleInit
,
syncModuleInitFunc
);
if
(
tsTcpPool
==
NULL
)
{
free
(
pNode
);
syncModuleInit
=
PTHREAD_ONCE_INIT
;
sError
(
"failed to init sync module(%s)"
,
tstrerror
(
errno
));
return
NULL
;
}
atomic_add_fetch_32
(
&
tsNodeNum
,
1
);
tstrncpy
(
pNode
->
path
,
pInfo
->
path
,
sizeof
(
pNode
->
path
));
pthread_mutex_init
(
&
pNode
->
mutex
,
NULL
);
...
...
@@ -435,17 +451,6 @@ static void syncDecNodeRef(SSyncNode *pNode)
taosTFree
(
pNode
->
pRecv
);
taosTFree
(
pNode
->
pSyncFwds
);
taosTFree
(
pNode
);
if
(
atomic_sub_fetch_32
(
&
tsNodeNum
,
1
)
==
0
)
{
if
(
tsTcpPool
)
taosCloseTcpThreadPool
(
tsTcpPool
);
if
(
syncTmrCtrl
)
taosTmrCleanUp
(
syncTmrCtrl
);
if
(
vgIdHash
)
taosHashCleanup
(
vgIdHash
);
syncTmrCtrl
=
NULL
;
tsTcpPool
=
NULL
;
vgIdHash
=
NULL
;
syncModuleInit
=
PTHREAD_ONCE_INIT
;
sDebug
(
"sync module is cleaned up"
);
}
}
}
...
...
src/vnode/src/vnodeMain.c
浏览文件 @
4e18484b
...
...
@@ -57,6 +57,9 @@ void syncConfirmForward(tsync_h shandle, uint64_t version, int32_t code) {}
#endif
int32_t
vnodeInitResources
()
{
int
code
=
syncInit
();
if
(
code
!=
0
)
return
code
;
vnodeInitWriteFp
();
vnodeInitReadFp
();
...
...
@@ -70,11 +73,12 @@ int32_t vnodeInitResources() {
}
void
vnodeCleanupResources
()
{
if
(
tsDnodeVnodesHash
!=
NULL
)
{
taosHashCleanup
(
tsDnodeVnodesHash
);
tsDnodeVnodesHash
=
NULL
;
}
syncCleanUp
();
}
int32_t
vnodeCreate
(
SMDCreateVnodeMsg
*
pVnodeCfg
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录