Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
aa2b54c5
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
aa2b54c5
编写于
10月 31, 2022
作者:
S
slzhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enhance: add configuration for udfd LD_LIBRARY_PATH to taos.cfg
上级
13a13bf0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
3 deletion
+25
-3
include/common/tglobal.h
include/common/tglobal.h
+1
-0
source/common/src/tglobal.c
source/common/src/tglobal.c
+4
-2
source/libs/function/src/tudf.c
source/libs/function/src/tudf.c
+20
-1
未找到文件。
include/common/tglobal.h
浏览文件 @
aa2b54c5
...
...
@@ -119,6 +119,7 @@ extern SDiskCfg tsDiskCfg[];
// udf
extern
bool
tsStartUdfd
;
extern
char
tsUdfdResFuncs
[];
extern
char
tsUdfdLdLibPath
[];
// schemaless
extern
char
tsSmlChildTableName
[];
...
...
source/common/src/tglobal.c
浏览文件 @
aa2b54c5
...
...
@@ -163,7 +163,8 @@ int32_t tsTtlUnit = 86400;
int32_t
tsTtlPushInterval
=
86400
;
int32_t
tsGrantHBInterval
=
60
;
int32_t
tsUptimeInterval
=
300
;
// seconds
char
tsUdfdResFuncs
[
1024
]
=
""
;
// udfd resident funcs that teardown when udfd exits
char
tsUdfdResFuncs
[
512
]
=
""
;
// udfd resident funcs that teardown when udfd exits
char
tsUdfdLdLibPath
[
512
]
=
""
;
#ifndef _STORAGE
int32_t
taosSetTfsCfg
(
SConfig
*
pCfg
)
{
...
...
@@ -424,6 +425,7 @@ static int32_t taosAddServerCfg(SConfig *pCfg) {
if
(
cfgAddBool
(
pCfg
,
"udf"
,
tsStartUdfd
,
0
)
!=
0
)
return
-
1
;
if
(
cfgAddString
(
pCfg
,
"udfdResFuncs"
,
tsUdfdResFuncs
,
0
)
!=
0
)
return
-
1
;
if
(
cfgAddString
(
pCfg
,
"udfdLdLibPath"
,
tsUdfdLdLibPath
,
0
)
!=
0
)
return
-
1
;
GRANT_CFG_ADD
;
return
0
;
}
...
...
@@ -722,7 +724,7 @@ static int32_t taosSetServerCfg(SConfig *pCfg) {
tsStartUdfd
=
cfgGetItem
(
pCfg
,
"udf"
)
->
bval
;
tstrncpy
(
tsUdfdResFuncs
,
cfgGetItem
(
pCfg
,
"udfdResFuncs"
)
->
str
,
sizeof
(
tsUdfdResFuncs
));
tstrncpy
(
tsUdfdLdLibPath
,
cfgGetItem
(
pCfg
,
"udfdLdLibPath"
)
->
str
,
sizeof
(
tsUdfdLdLibPath
));
if
(
tsQueryBufferSize
>=
0
)
{
tsQueryBufferSizeBytes
=
tsQueryBufferSize
*
1048576UL
;
}
...
...
source/libs/function/src/tudf.c
浏览文件 @
aa2b54c5
...
...
@@ -117,10 +117,29 @@ static int32_t udfSpawnUdfd(SUdfdData *pData) {
char
dnodeIdEnvItem
[
32
]
=
{
0
};
char
thrdPoolSizeEnvItem
[
32
]
=
{
0
};
snprintf
(
dnodeIdEnvItem
,
32
,
"%s=%d"
,
"DNODE_ID"
,
pData
->
dnodeId
);
float
numCpuCores
=
4
;
taosGetCpuCores
(
&
numCpuCores
);
snprintf
(
thrdPoolSizeEnvItem
,
32
,
"%s=%d"
,
"UV_THREADPOOL_SIZE"
,
(
int
)
numCpuCores
*
2
);
char
*
envUdfd
[]
=
{
dnodeIdEnvItem
,
thrdPoolSizeEnvItem
,
NULL
};
char
pathTaosdLdLib
[
512
]
=
{
0
};
size_t
taosdLdLibPathLen
=
sizeof
(
pathTaosdLdLib
);
uv_os_getenv
(
"LD_LIBRARY_PATH"
,
pathTaosdLdLib
,
&
taosdLdLibPathLen
);
char
udfdPathLdLib
[
1024
]
=
{
0
};
size_t
udfdLdLibPathLen
=
strlen
(
tsUdfdLdLibPath
);
strncpy
(
udfdPathLdLib
,
tsUdfdLdLibPath
,
udfdLdLibPathLen
);
udfdPathLdLib
[
udfdLdLibPathLen
]
=
':'
;
strncpy
(
udfdPathLdLib
+
udfdLdLibPathLen
+
1
,
pathTaosdLdLib
,
sizeof
(
udfdPathLdLib
)
-
udfdLdLibPathLen
);
if
(
udfdLdLibPathLen
+
taosdLdLibPathLen
<
1024
)
{
fnInfo
(
"udfd LD_LIBRARY_PATH: %s"
,
udfdPathLdLib
);
}
else
{
fnError
(
"can not set correct udfd LD_LIBRARY_PATH"
);
}
char
ldLibPathEnvItem
[
1024
+
32
]
=
{
0
};
snprintf
(
ldLibPathEnvItem
,
1024
+
32
,
"%s=%s"
,
"LD_LIBRARY_PATH"
,
ldLibPathEnvItem
);
char
*
envUdfd
[]
=
{
dnodeIdEnvItem
,
thrdPoolSizeEnvItem
,
ldLibPathEnvItem
,
NULL
};
options
.
env
=
envUdfd
;
int
err
=
uv_spawn
(
&
pData
->
loop
,
&
pData
->
process
,
&
options
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录