Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ee28ab3b
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ee28ab3b
编写于
2月 16, 2023
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: batch send
上级
c35b9386
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
9 deletion
+20
-9
source/libs/transport/src/transCli.c
source/libs/transport/src/transCli.c
+20
-9
未找到文件。
source/libs/transport/src/transCli.c
浏览文件 @
ee28ab3b
...
@@ -837,10 +837,9 @@ void cliSendBatch(SCliConn* pConn) {
...
@@ -837,10 +837,9 @@ void cliSendBatch(SCliConn* pConn) {
uv_buf_t
*
wb
=
taosMemoryCalloc
(
wLen
,
sizeof
(
uv_buf_t
));
uv_buf_t
*
wb
=
taosMemoryCalloc
(
wLen
,
sizeof
(
uv_buf_t
));
int
i
=
0
;
int
i
=
0
;
while
(
!
QUEUE_IS_EMPTY
(
&
pBatch
->
wq
))
{
queue
*
h
=
NULL
;
queue
*
h
=
QUEUE_HEAD
(
&
pBatch
->
wq
);
QUEUE_FOREACH
(
h
,
&
pBatch
->
wq
)
{
SCliMsg
*
pCliMsg
=
QUEUE_DATA
(
h
,
SCliMsg
,
q
);
SCliMsg
*
pCliMsg
=
QUEUE_DATA
(
h
,
SCliMsg
,
q
);
QUEUE_REMOVE
(
&
pCliMsg
->
q
);
STransConnCtx
*
pCtx
=
pCliMsg
->
ctx
;
STransConnCtx
*
pCtx
=
pCliMsg
->
ctx
;
...
@@ -878,7 +877,6 @@ void cliSendBatch(SCliConn* pConn) {
...
@@ -878,7 +877,6 @@ void cliSendBatch(SCliConn* pConn) {
wb
[
i
++
]
=
uv_buf_init
((
char
*
)
pHead
,
msgLen
);
wb
[
i
++
]
=
uv_buf_init
((
char
*
)
pHead
,
msgLen
);
}
}
pBatch
->
wLen
=
0
;
uv_write_t
*
req
=
taosMemoryCalloc
(
1
,
sizeof
(
uv_write_t
));
uv_write_t
*
req
=
taosMemoryCalloc
(
1
,
sizeof
(
uv_write_t
));
req
->
data
=
pConn
;
req
->
data
=
pConn
;
uv_write
(
req
,
(
uv_stream_t
*
)
pConn
->
stream
,
wb
,
wLen
,
cliSendBatchCb
);
uv_write
(
req
,
(
uv_stream_t
*
)
pConn
->
stream
,
wb
,
wLen
,
cliSendBatchCb
);
...
@@ -970,7 +968,13 @@ _RETURN:
...
@@ -970,7 +968,13 @@ _RETURN:
static
SCliBatch
*
cliDumpBatch
(
SCliBatch
*
pBatch
)
{
static
SCliBatch
*
cliDumpBatch
(
SCliBatch
*
pBatch
)
{
SCliBatch
*
pNewBatch
=
taosMemoryCalloc
(
1
,
sizeof
(
SCliBatch
));
SCliBatch
*
pNewBatch
=
taosMemoryCalloc
(
1
,
sizeof
(
SCliBatch
));
memcpy
(
pNewBatch
->
wq
,
pBatch
->
wq
,
sizeof
(
pBatch
->
wq
));
QUEUE_INIT
(
&
pNewBatch
->
wq
);
while
(
!
QUEUE_IS_EMPTY
(
&
pBatch
->
wq
))
{
queue
*
h
=
QUEUE_HEAD
(
&
pBatch
->
wq
);
QUEUE_REMOVE
(
h
);
QUEUE_PUSH
(
&
pNewBatch
->
wq
,
h
);
}
pNewBatch
->
batchSize
=
pBatch
->
batchSize
;
pNewBatch
->
batchSize
=
pBatch
->
batchSize
;
pNewBatch
->
batch
=
pBatch
->
batch
;
pNewBatch
->
batch
=
pBatch
->
batch
;
...
@@ -1027,7 +1031,7 @@ static void cliHandleBatchReq(SCliBatch* pBatch, SCliThrd* pThrd) {
...
@@ -1027,7 +1031,7 @@ static void cliHandleBatchReq(SCliBatch* pBatch, SCliThrd* pThrd) {
addr
.
sin_addr
.
s_addr
=
ipaddr
;
addr
.
sin_addr
.
s_addr
=
ipaddr
;
addr
.
sin_port
=
(
uint16_t
)
htons
(
pBatch
->
port
);
addr
.
sin_port
=
(
uint16_t
)
htons
(
pBatch
->
port
);
tTrace
(
"%s conn %p try to connect to %s"
,
pTransInst
->
label
,
conn
,
pBatch
->
ip
);
tTrace
(
"%s conn %p try to connect to %s"
,
pTransInst
->
label
,
conn
,
pBatch
->
dst
);
int32_t
fd
=
taosCreateSocketWithTimeout
(
TRANS_CONN_TIMEOUT
*
4
);
int32_t
fd
=
taosCreateSocketWithTimeout
(
TRANS_CONN_TIMEOUT
*
4
);
if
(
fd
==
-
1
)
{
if
(
fd
==
-
1
)
{
tError
(
"%s conn %p failed to create socket, reason:%s"
,
transLabel
(
pTransInst
),
conn
,
tError
(
"%s conn %p failed to create socket, reason:%s"
,
transLabel
(
pTransInst
),
conn
,
...
@@ -1079,7 +1083,7 @@ static void cliSendBatchCb(uv_write_t* req, int status) {
...
@@ -1079,7 +1083,7 @@ static void cliSendBatchCb(uv_write_t* req, int status) {
static
void
cliHandleFastFail
(
SCliConn
*
pConn
,
int
status
)
{
static
void
cliHandleFastFail
(
SCliConn
*
pConn
,
int
status
)
{
SCliThrd
*
pThrd
=
pConn
->
hostThrd
;
SCliThrd
*
pThrd
=
pConn
->
hostThrd
;
STrans
*
pTransInst
=
pThrd
->
pTransInst
;
STrans
*
pTransInst
=
pThrd
->
pTransInst
;
tError
(
"conn %p free twice
"
,
pConn
);
tError
(
"conn %p free twice
, reason:%s"
,
pConn
,
uv_err_name
(
status
)
);
if
(
pConn
->
pBatch
==
NULL
)
{
if
(
pConn
->
pBatch
==
NULL
)
{
SCliMsg
*
pMsg
=
transQueueGet
(
&
pConn
->
cliMsgs
,
0
);
SCliMsg
*
pMsg
=
transQueueGet
(
&
pConn
->
cliMsgs
,
0
);
...
@@ -1443,7 +1447,7 @@ static void cliBatchDealReq(queue* wq, SCliThrd* pThrd) {
...
@@ -1443,7 +1447,7 @@ static void cliBatchDealReq(queue* wq, SCliThrd* pThrd) {
QUEUE_REMOVE
(
h
);
QUEUE_REMOVE
(
h
);
SCliMsg
*
pMsg
=
QUEUE_DATA
(
h
,
SCliMsg
,
q
);
SCliMsg
*
pMsg
=
QUEUE_DATA
(
h
,
SCliMsg
,
q
);
if
(
REQUEST_NO_RESP
(
&
pMsg
->
msg
))
{
if
(
pMsg
->
type
==
Normal
&&
REQUEST_NO_RESP
(
&
pMsg
->
msg
))
{
STransConnCtx
*
pCtx
=
pMsg
->
ctx
;
STransConnCtx
*
pCtx
=
pMsg
->
ctx
;
char
*
ip
=
EPSET_GET_INUSE_IP
(
&
pCtx
->
epSet
);
char
*
ip
=
EPSET_GET_INUSE_IP
(
&
pCtx
->
epSet
);
...
@@ -1469,7 +1473,7 @@ static void cliBatchDealReq(queue* wq, SCliThrd* pThrd) {
...
@@ -1469,7 +1473,7 @@ static void cliBatchDealReq(queue* wq, SCliThrd* pThrd) {
(
*
ppBatch
)
->
wLen
+=
1
;
(
*
ppBatch
)
->
wLen
+=
1
;
(
*
ppBatch
)
->
batchSize
+=
pMsg
->
msg
.
contLen
;
(
*
ppBatch
)
->
batchSize
+=
pMsg
->
msg
.
contLen
;
}
}
return
;
continue
;
}
}
(
*
cliAsyncHandle
[
pMsg
->
type
])(
pMsg
,
pThrd
);
(
*
cliAsyncHandle
[
pMsg
->
type
])(
pMsg
,
pThrd
);
count
++
;
count
++
;
...
@@ -1751,6 +1755,13 @@ static void destroyThrdObj(SCliThrd* pThrd) {
...
@@ -1751,6 +1755,13 @@ static void destroyThrdObj(SCliThrd* pThrd) {
taosHashCleanup
(
pThrd
->
fqdn2ipCache
);
taosHashCleanup
(
pThrd
->
fqdn2ipCache
);
taosHashCleanup
(
pThrd
->
failFastCache
);
taosHashCleanup
(
pThrd
->
failFastCache
);
taosHashCleanup
(
pThrd
->
connLimitCache
);
taosHashCleanup
(
pThrd
->
connLimitCache
);
void
**
pIter
=
taosHashIterate
(
pThrd
->
batchCache
,
NULL
);
while
(
pIter
!=
NULL
)
{
SCliBatch
*
batch
=
(
SCliBatch
*
)(
*
pIter
);
cliDestroyBatch
(
batch
);
pIter
=
(
void
**
)
taosHashIterate
(
pThrd
->
batchCache
,
pIter
);
}
taosHashCleanup
(
pThrd
->
batchCache
);
taosHashCleanup
(
pThrd
->
batchCache
);
taosMemoryFree
(
pThrd
);
taosMemoryFree
(
pThrd
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录