Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
495bb309
T
TDengine
项目概览
慢慢CG
/
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看板
提交
495bb309
编写于
11月 27, 2019
作者:
S
slguan
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into feature/slguan
上级
bb4cdad9
903b88a5
变更
18
展开全部
隐藏空白更改
内联
并排
Showing
18 changed file
with
1678 addition
and
1842 deletion
+1678
-1842
packaging/cfg/taos.cfg
packaging/cfg/taos.cfg
+6
-0
src/client/inc/tscSQLParser.h
src/client/inc/tscSQLParser.h
+1
-0
src/client/src/sql.c
src/client/src/sql.c
+1268
-1665
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+18
-1
src/client/src/tscServer.c
src/client/src/tscServer.c
+2
-2
src/inc/sql.y
src/inc/sql.y
+4
-1
src/inc/taosmsg.h
src/inc/taosmsg.h
+2
-1
src/inc/tglobalcfg.h
src/inc/tglobalcfg.h
+2
-0
src/inc/tsqldef.h
src/inc/tsqldef.h
+139
-140
src/rpc/src/trpc.c
src/rpc/src/trpc.c
+106
-21
src/system/detail/inc/mgmt.h
src/system/detail/inc/mgmt.h
+3
-0
src/system/detail/src/mgmtDnode.c
src/system/detail/src/mgmtDnode.c
+116
-0
src/system/detail/src/mgmtMeter.c
src/system/detail/src/mgmtMeter.c
+1
-1
src/system/detail/src/mgmtShell.c
src/system/detail/src/mgmtShell.c
+2
-0
src/system/detail/src/vnodeQueryImpl.c
src/system/detail/src/vnodeQueryImpl.c
+5
-5
src/system/detail/src/vnodeRead.c
src/system/detail/src/vnodeRead.c
+1
-5
src/util/src/tglobalcfg.c
src/util/src/tglobalcfg.c
+1
-0
src/util/src/ttokenizer.c
src/util/src/ttokenizer.c
+1
-0
未找到文件。
packaging/cfg/taos.cfg
浏览文件 @
495bb309
...
@@ -58,6 +58,12 @@
...
@@ -58,6 +58,12 @@
# The server and client should have the same socket type. Otherwise, connect will fail.
# The server and client should have the same socket type. Otherwise, connect will fail.
# sockettype udp
# sockettype udp
# The compressed rpc message, option:
# -1 (no compression)
# 0 (all message compressed),
# > 0 (rpc message body which larger than this value will be compressed)
# compressMsgSize -1
# RPC re-try timer, millisecond
# RPC re-try timer, millisecond
# rpcTimer 300
# rpcTimer 300
...
...
src/client/inc/tscSQLParser.h
浏览文件 @
495bb309
...
@@ -105,6 +105,7 @@ enum TSQL_TYPE {
...
@@ -105,6 +105,7 @@ enum TSQL_TYPE {
SHOW_MODULES
=
0x6c
,
SHOW_MODULES
=
0x6c
,
SHOW_CONNECTIONS
=
0x6d
,
SHOW_CONNECTIONS
=
0x6d
,
SHOW_GRANTS
=
0x6e
,
SHOW_GRANTS
=
0x6e
,
SHOW_VNODES
=
0x6f
,
// create dnode
// create dnode
CREATE_DNODE
=
0x80
,
CREATE_DNODE
=
0x80
,
...
...
src/client/src/sql.c
浏览文件 @
495bb309
此差异已折叠。
点击以展开。
src/client/src/tscSQLParser.c
浏览文件 @
495bb309
...
@@ -291,7 +291,8 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
...
@@ -291,7 +291,8 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
case
SHOW_STREAMS
:
case
SHOW_STREAMS
:
case
SHOW_SCORES
:
case
SHOW_SCORES
:
case
SHOW_GRANTS
:
case
SHOW_GRANTS
:
case
SHOW_CONFIGS
:
{
case
SHOW_CONFIGS
:
case
SHOW_VNODES
:
{
return
setShowInfo
(
pSql
,
pInfo
);
return
setShowInfo
(
pSql
,
pInfo
);
}
}
...
@@ -2595,6 +2596,9 @@ int32_t setShowInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
...
@@ -2595,6 +2596,9 @@ int32_t setShowInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
case
SHOW_CONFIGS
:
case
SHOW_CONFIGS
:
pCmd
->
showType
=
TSDB_MGMT_TABLE_CONFIGS
;
pCmd
->
showType
=
TSDB_MGMT_TABLE_CONFIGS
;
break
;
break
;
case
SHOW_VNODES
:
pCmd
->
showType
=
TSDB_MGMT_TABLE_VNODES
;
break
;
default:
default:
return
TSDB_CODE_INVALID_SQL
;
return
TSDB_CODE_INVALID_SQL
;
}
}
...
@@ -2640,6 +2644,19 @@ int32_t setShowInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
...
@@ -2640,6 +2644,19 @@ int32_t setShowInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
}
}
}
}
}
}
else
if
(
type
==
SHOW_VNODES
)
{
// show vnodes may be ip addr of dnode in payload
if
(
pInfo
->
pDCLInfo
->
nTokens
>
0
)
{
SSQLToken
*
pDnodeIp
=
&
pInfo
->
pDCLInfo
->
a
[
0
];
if
(
pDnodeIp
->
n
>
TSDB_IPv4ADDR_LEN
)
{
// ip addr is too long
setErrMsg
(
pCmd
,
msg
);
return
TSDB_CODE_INVALID_SQL
;
}
strncpy
(
pCmd
->
payload
,
pDnodeIp
->
z
,
pDnodeIp
->
n
);
pCmd
->
payloadLen
=
strdequote
(
pCmd
->
payload
);
}
}
}
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
...
...
src/client/src/tscServer.c
浏览文件 @
495bb309
...
@@ -2175,7 +2175,7 @@ int tscBuildShowMsg(SSqlObj *pSql) {
...
@@ -2175,7 +2175,7 @@ int tscBuildShowMsg(SSqlObj *pSql) {
pShowMsg
=
(
SShowMsg
*
)
pMsg
;
pShowMsg
=
(
SShowMsg
*
)
pMsg
;
pShowMsg
->
type
=
pCmd
->
showType
;
pShowMsg
->
type
=
pCmd
->
showType
;
if
((
pShowMsg
->
type
==
TSDB_MGMT_TABLE_TABLE
||
pShowMsg
->
type
==
TSDB_MGMT_TABLE_METRIC
)
&&
pCmd
->
payloadLen
!=
0
)
{
if
((
pShowMsg
->
type
==
TSDB_MGMT_TABLE_TABLE
||
pShowMsg
->
type
==
TSDB_MGMT_TABLE_METRIC
||
pShowMsg
->
type
==
TSDB_MGMT_TABLE_VNODES
)
&&
pCmd
->
payloadLen
!=
0
)
{
// only show tables support wildcard query
// only show tables support wildcard query
pShowMsg
->
payloadLen
=
htons
(
pCmd
->
payloadLen
);
pShowMsg
->
payloadLen
=
htons
(
pCmd
->
payloadLen
);
memcpy
(
pShowMsg
->
payload
,
payload
,
pCmd
->
payloadLen
);
memcpy
(
pShowMsg
->
payload
,
payload
,
pCmd
->
payloadLen
);
...
@@ -3652,7 +3652,7 @@ int tscRenewMeterMeta(SSqlObj *pSql, char *meterId) {
...
@@ -3652,7 +3652,7 @@ int tscRenewMeterMeta(SSqlObj *pSql, char *meterId) {
*/
*/
if
(
pMeterMetaInfo
->
pMeterMeta
==
NULL
||
!
tscQueryOnMetric
(
pCmd
))
{
if
(
pMeterMetaInfo
->
pMeterMeta
==
NULL
||
!
tscQueryOnMetric
(
pCmd
))
{
if
(
pMeterMetaInfo
->
pMeterMeta
)
{
if
(
pMeterMetaInfo
->
pMeterMeta
)
{
tscTrace
(
"%p update meter meta, old: numOfTags:%d, numOfCols:%d, uid:%d, addr:%p"
,
pSql
,
tscTrace
(
"%p update meter meta, old: numOfTags:%d, numOfCols:%d, uid:%
ll
d, addr:%p"
,
pSql
,
pMeterMetaInfo
->
numOfTags
,
pCmd
->
numOfCols
,
pMeterMetaInfo
->
pMeterMeta
->
uid
,
pMeterMetaInfo
->
pMeterMeta
);
pMeterMetaInfo
->
numOfTags
,
pCmd
->
numOfCols
,
pMeterMetaInfo
->
pMeterMeta
->
uid
,
pMeterMetaInfo
->
pMeterMeta
);
}
}
tscWaitingForCreateTable
(
&
pSql
->
cmd
);
tscWaitingForCreateTable
(
&
pSql
->
cmd
);
...
...
src/inc/sql.y
浏览文件 @
495bb309
...
@@ -73,6 +73,9 @@ cmd ::= SHOW CONFIGS. { setDCLSQLElems(pInfo, SHOW_CONFIGS, 0); }
...
@@ -73,6 +73,9 @@ cmd ::= SHOW CONFIGS. { setDCLSQLElems(pInfo, SHOW_CONFIGS, 0); }
cmd ::= SHOW SCORES. { setDCLSQLElems(pInfo, SHOW_SCORES, 0); }
cmd ::= SHOW SCORES. { setDCLSQLElems(pInfo, SHOW_SCORES, 0); }
cmd ::= SHOW GRANTS. { setDCLSQLElems(pInfo, SHOW_GRANTS, 0); }
cmd ::= SHOW GRANTS. { setDCLSQLElems(pInfo, SHOW_GRANTS, 0); }
cmd ::= SHOW VNODES. { setDCLSQLElems(pInfo, SHOW_VNODES, 0); }
cmd ::= SHOW VNODES IPTOKEN(X). { setDCLSQLElems(pInfo, SHOW_VNODES, 1, &X); }
%type dbPrefix {SSQLToken}
%type dbPrefix {SSQLToken}
dbPrefix(A) ::=. {A.n = 0;}
dbPrefix(A) ::=. {A.n = 0;}
dbPrefix(A) ::= ids(X) DOT. {A = X; }
dbPrefix(A) ::= ids(X) DOT. {A = X; }
...
@@ -658,4 +661,4 @@ cmd ::= KILL QUERY IPTOKEN(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X
...
@@ -658,4 +661,4 @@ cmd ::= KILL QUERY IPTOKEN(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
LIKE MATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
LIKE MATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
COUNT SUM AVG MIN MAX FIRST LAST TOP BOTTOM STDDEV PERCENTILE APERCENTILE LEASTSQUARES HISTOGRAM DIFF
COUNT SUM AVG MIN MAX FIRST LAST TOP BOTTOM STDDEV PERCENTILE APERCENTILE LEASTSQUARES HISTOGRAM DIFF
SPREAD TWA INTERP LAST_ROW NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT METRIC TBNAME JOIN METRICS STABLE NULL.
SPREAD TWA INTERP LAST_ROW NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT METRIC TBNAME JOIN METRICS STABLE NULL.
\ No newline at end of file
src/inc/taosmsg.h
浏览文件 @
495bb309
...
@@ -158,6 +158,7 @@ enum _mgmt_table {
...
@@ -158,6 +158,7 @@ enum _mgmt_table {
TSDB_MGMT_TABLE_CONNS
,
TSDB_MGMT_TABLE_CONNS
,
TSDB_MGMT_TABLE_SCORES
,
TSDB_MGMT_TABLE_SCORES
,
TSDB_MGMT_TABLE_GRANTS
,
TSDB_MGMT_TABLE_GRANTS
,
TSDB_MGMT_TABLE_VNODES
,
TSDB_MGMT_TABLE_MAX
,
TSDB_MGMT_TABLE_MAX
,
};
};
...
@@ -224,7 +225,7 @@ typedef struct {
...
@@ -224,7 +225,7 @@ typedef struct {
char
meterId
[
TSDB_UNI_LEN
];
char
meterId
[
TSDB_UNI_LEN
];
uint16_t
port
;
// for UDP only
uint16_t
port
;
// for UDP only
char
empty
[
1
];
char
empty
[
1
];
char
msgType
;
uint8_t
msgType
;
int32_t
msgLen
;
int32_t
msgLen
;
uint8_t
content
[
0
];
uint8_t
content
[
0
];
}
STaosHeader
;
}
STaosHeader
;
...
...
src/inc/tglobalcfg.h
浏览文件 @
495bb309
...
@@ -256,6 +256,8 @@ SGlobalConfig *tsGetConfigOption(const char *option);
...
@@ -256,6 +256,8 @@ SGlobalConfig *tsGetConfigOption(const char *option);
#define TSDB_CFG_OPTION_LEN 24
#define TSDB_CFG_OPTION_LEN 24
#define TSDB_CFG_VALUE_LEN 41
#define TSDB_CFG_VALUE_LEN 41
#define NEEDTO_COMPRESSS_MSG(size) (tsCompressMsgSize != -1 && (size) > tsCompressMsgSize)
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
...
...
src/inc/tsqldef.h
浏览文件 @
495bb309
...
@@ -72,145 +72,144 @@
...
@@ -72,145 +72,144 @@
#define TK_CONFIGS 54
#define TK_CONFIGS 54
#define TK_SCORES 55
#define TK_SCORES 55
#define TK_GRANTS 56
#define TK_GRANTS 56
#define TK_DOT 57
#define TK_VNODES 57
#define TK_TABLES 58
#define TK_IPTOKEN 58
#define TK_STABLES 59
#define TK_DOT 59
#define TK_VGROUPS 60
#define TK_TABLES 60
#define TK_DROP 61
#define TK_STABLES 61
#define TK_TABLE 62
#define TK_VGROUPS 62
#define TK_DATABASE 63
#define TK_DROP 63
#define TK_DNODE 64
#define TK_TABLE 64
#define TK_IPTOKEN 65
#define TK_DATABASE 65
#define TK_USER 66
#define TK_DNODE 66
#define TK_ACCOUNT 67
#define TK_USER 67
#define TK_USE 68
#define TK_ACCOUNT 68
#define TK_DESCRIBE 69
#define TK_USE 69
#define TK_ALTER 70
#define TK_DESCRIBE 70
#define TK_PASS 71
#define TK_ALTER 71
#define TK_PRIVILEGE 72
#define TK_PASS 72
#define TK_LOCAL 73
#define TK_PRIVILEGE 73
#define TK_IF 74
#define TK_LOCAL 74
#define TK_EXISTS 75
#define TK_IF 75
#define TK_CREATE 76
#define TK_EXISTS 76
#define TK_PPS 77
#define TK_CREATE 77
#define TK_TSERIES 78
#define TK_PPS 78
#define TK_DBS 79
#define TK_TSERIES 79
#define TK_STORAGE 80
#define TK_DBS 80
#define TK_QTIME 81
#define TK_STORAGE 81
#define TK_CONNS 82
#define TK_QTIME 82
#define TK_STATE 83
#define TK_CONNS 83
#define TK_KEEP 84
#define TK_STATE 84
#define TK_CACHE 85
#define TK_KEEP 85
#define TK_REPLICA 86
#define TK_CACHE 86
#define TK_DAYS 87
#define TK_REPLICA 87
#define TK_ROWS 88
#define TK_DAYS 88
#define TK_ABLOCKS 89
#define TK_ROWS 89
#define TK_TBLOCKS 90
#define TK_ABLOCKS 90
#define TK_CTIME 91
#define TK_TBLOCKS 91
#define TK_CLOG 92
#define TK_CTIME 92
#define TK_COMP 93
#define TK_CLOG 93
#define TK_PRECISION 94
#define TK_COMP 94
#define TK_LP 95
#define TK_PRECISION 95
#define TK_RP 96
#define TK_LP 96
#define TK_TAGS 97
#define TK_RP 97
#define TK_USING 98
#define TK_TAGS 98
#define TK_AS 99
#define TK_USING 99
#define TK_COMMA 100
#define TK_AS 100
#define TK_NULL 101
#define TK_COMMA 101
#define TK_SELECT 102
#define TK_NULL 102
#define TK_FROM 103
#define TK_SELECT 103
#define TK_VARIABLE 104
#define TK_FROM 104
#define TK_INTERVAL 105
#define TK_VARIABLE 105
#define TK_FILL 106
#define TK_INTERVAL 106
#define TK_SLIDING 107
#define TK_FILL 107
#define TK_ORDER 108
#define TK_SLIDING 108
#define TK_BY 109
#define TK_ORDER 109
#define TK_ASC 110
#define TK_BY 110
#define TK_DESC 111
#define TK_ASC 111
#define TK_GROUP 112
#define TK_DESC 112
#define TK_HAVING 113
#define TK_GROUP 113
#define TK_LIMIT 114
#define TK_HAVING 114
#define TK_OFFSET 115
#define TK_LIMIT 115
#define TK_SLIMIT 116
#define TK_OFFSET 116
#define TK_SOFFSET 117
#define TK_SLIMIT 117
#define TK_WHERE 118
#define TK_SOFFSET 118
#define TK_NOW 119
#define TK_WHERE 119
#define TK_INSERT 120
#define TK_NOW 120
#define TK_INTO 121
#define TK_INSERT 121
#define TK_VALUES 122
#define TK_INTO 122
#define TK_RESET 123
#define TK_VALUES 123
#define TK_QUERY 124
#define TK_RESET 124
#define TK_ADD 125
#define TK_QUERY 125
#define TK_COLUMN 126
#define TK_ADD 126
#define TK_TAG 127
#define TK_COLUMN 127
#define TK_CHANGE 128
#define TK_TAG 128
#define TK_SET 129
#define TK_CHANGE 129
#define TK_KILL 130
#define TK_SET 130
#define TK_CONNECTION 131
#define TK_KILL 131
#define TK_COLON 132
#define TK_CONNECTION 132
#define TK_STREAM 133
#define TK_COLON 133
#define TK_ABORT 134
#define TK_STREAM 134
#define TK_AFTER 135
#define TK_ABORT 135
#define TK_ATTACH 136
#define TK_AFTER 136
#define TK_BEFORE 137
#define TK_ATTACH 137
#define TK_BEGIN 138
#define TK_BEFORE 138
#define TK_CASCADE 139
#define TK_BEGIN 139
#define TK_CLUSTER 140
#define TK_CASCADE 140
#define TK_CONFLICT 141
#define TK_CLUSTER 141
#define TK_COPY 142
#define TK_CONFLICT 142
#define TK_DEFERRED 143
#define TK_COPY 143
#define TK_DELIMITERS 144
#define TK_DEFERRED 144
#define TK_DETACH 145
#define TK_DELIMITERS 145
#define TK_EACH 146
#define TK_DETACH 146
#define TK_END 147
#define TK_EACH 147
#define TK_EXPLAIN 148
#define TK_END 148
#define TK_FAIL 149
#define TK_EXPLAIN 149
#define TK_FOR 150
#define TK_FAIL 150
#define TK_IGNORE 151
#define TK_FOR 151
#define TK_IMMEDIATE 152
#define TK_IGNORE 152
#define TK_INITIALLY 153
#define TK_IMMEDIATE 153
#define TK_INSTEAD 154
#define TK_INITIALLY 154
#define TK_MATCH 155
#define TK_INSTEAD 155
#define TK_KEY 156
#define TK_MATCH 156
#define TK_OF 157
#define TK_KEY 157
#define TK_RAISE 158
#define TK_OF 158
#define TK_REPLACE 159
#define TK_RAISE 159
#define TK_RESTRICT 160
#define TK_REPLACE 160
#define TK_ROW 161
#define TK_RESTRICT 161
#define TK_STATEMENT 162
#define TK_ROW 162
#define TK_TRIGGER 163
#define TK_STATEMENT 163
#define TK_VIEW 164
#define TK_TRIGGER 164
#define TK_ALL 165
#define TK_VIEW 165
#define TK_COUNT 166
#define TK_ALL 166
#define TK_SUM 167
#define TK_COUNT 167
#define TK_AVG 168
#define TK_SUM 168
#define TK_MIN 169
#define TK_AVG 169
#define TK_MAX 170
#define TK_MIN 170
#define TK_FIRST 171
#define TK_MAX 171
#define TK_LAST 172
#define TK_FIRST 172
#define TK_TOP 173
#define TK_LAST 173
#define TK_BOTTOM 174
#define TK_TOP 174
#define TK_STDDEV 175
#define TK_BOTTOM 175
#define TK_PERCENTILE 176
#define TK_STDDEV 176
#define TK_APERCENTILE 177
#define TK_PERCENTILE 177
#define TK_LEASTSQUARES 178
#define TK_APERCENTILE 178
#define TK_HISTOGRAM 179
#define TK_LEASTSQUARES 179
#define TK_DIFF 180
#define TK_HISTOGRAM 180
#define TK_SPREAD 181
#define TK_DIFF 181
#define TK_TWA 182
#define TK_SPREAD 182
#define TK_INTERP 183
#define TK_TWA 183
#define TK_LAST_ROW 184
#define TK_INTERP 184
#define TK_SEMI 185
#define TK_LAST_ROW 185
#define TK_NONE 186
#define TK_SEMI 186
#define TK_PREV 187
#define TK_NONE 187
#define TK_LINEAR 188
#define TK_PREV 188
#define TK_IMPORT 189
#define TK_LINEAR 189
#define TK_METRIC 190
#define TK_IMPORT 190
#define TK_TBNAME 191
#define TK_METRIC 191
#define TK_JOIN 192
#define TK_TBNAME 192
#define TK_METRICS 193
#define TK_JOIN 193
#define TK_STABLE 194
#define TK_METRICS 194
#define TK_STABLE 195
#endif
#endif
src/rpc/src/trpc.c
100644 → 100755
浏览文件 @
495bb309
...
@@ -14,7 +14,6 @@
...
@@ -14,7 +14,6 @@
*/
*/
#include "os.h"
#include "os.h"
#include "shash.h"
#include "shash.h"
#include "taosmsg.h"
#include "taosmsg.h"
#include "tidpool.h"
#include "tidpool.h"
...
@@ -30,6 +29,7 @@
...
@@ -30,6 +29,7 @@
#include "ttimer.h"
#include "ttimer.h"
#include "tudp.h"
#include "tudp.h"
#include "tutil.h"
#include "tutil.h"
#include "lz4.h"
#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
...
@@ -50,8 +50,7 @@ typedef struct {
...
@@ -50,8 +50,7 @@ typedef struct {
char
encrypt
;
char
encrypt
;
uint8_t
secret
[
TSDB_KEY_LEN
];
uint8_t
secret
[
TSDB_KEY_LEN
];
uint8_t
ckey
[
TSDB_KEY_LEN
];
uint8_t
ckey
[
TSDB_KEY_LEN
];
uint16_t
localPort
;
// for UDP only
uint16_t
localPort
;
// for UDP only
uint32_t
peerUid
;
uint32_t
peerUid
;
uint32_t
peerIp
;
// peer IP
uint32_t
peerIp
;
// peer IP
uint16_t
peerPort
;
// peer port
uint16_t
peerPort
;
// peer port
...
@@ -66,7 +65,7 @@ typedef struct {
...
@@ -66,7 +65,7 @@ typedef struct {
void
*
chandle
;
// handle passed by TCP/UDP connection layer
void
*
chandle
;
// handle passed by TCP/UDP connection layer
void
*
ahandle
;
// handle returned by upper app layter
void
*
ahandle
;
// handle returned by upper app layter
int
retry
;
int
retry
;
int
tretry
;
// total retry
int
tretry
;
// total retry
void
*
pTimer
;
void
*
pTimer
;
void
*
pIdleTimer
;
void
*
pIdleTimer
;
char
*
pRspMsg
;
char
*
pRspMsg
;
...
@@ -79,7 +78,7 @@ typedef struct {
...
@@ -79,7 +78,7 @@ typedef struct {
typedef
struct
{
typedef
struct
{
int
sessions
;
int
sessions
;
void
*
qhandle
;
// for scheduler
void
*
qhandle
;
// for scheduler
SRpcConn
*
connList
;
SRpcConn
*
connList
;
void
*
idPool
;
void
*
idPool
;
void
*
tmrCtrl
;
void
*
tmrCtrl
;
...
@@ -94,11 +93,11 @@ typedef struct rpc_server {
...
@@ -94,11 +93,11 @@ typedef struct rpc_server {
int
mask
;
int
mask
;
int
numOfChanns
;
int
numOfChanns
;
int
numOfThreads
;
int
numOfThreads
;
int
idMgmt
;
// ID management method
int
idMgmt
;
// ID management method
int
type
;
int
type
;
int
idleTime
;
// milliseconds;
int
idleTime
;
// milliseconds;
int
noFree
;
// do not free the request msg when rsp is received
int
noFree
;
// do not free the request msg when rsp is received
int
index
;
// for UDP server, next thread for new connection
int
index
;
// for UDP server, next thread for new connection
uint16_t
localPort
;
uint16_t
localPort
;
char
label
[
12
];
char
label
[
12
];
void
*
(
*
fp
)(
char
*
,
void
*
ahandle
,
void
*
thandle
);
void
*
(
*
fp
)(
char
*
,
void
*
ahandle
,
void
*
thandle
);
...
@@ -107,8 +106,7 @@ typedef struct rpc_server {
...
@@ -107,8 +106,7 @@ typedef struct rpc_server {
SRpcChann
*
channList
;
SRpcChann
*
channList
;
}
STaosRpc
;
}
STaosRpc
;
int
tsRpcProgressTime
=
10
;
// milliseocnds
int
tsRpcProgressTime
=
10
;
// milliseocnds
// not configurable
// not configurable
int
tsRpcMaxRetry
;
int
tsRpcMaxRetry
;
...
@@ -141,6 +139,89 @@ void taosProcessSchedMsg(SSchedMsg *pMsg);
...
@@ -141,6 +139,89 @@ void taosProcessSchedMsg(SSchedMsg *pMsg);
int
taosAuthenticateMsg
(
uint8_t
*
pMsg
,
int
msgLen
,
uint8_t
*
pAuth
,
uint8_t
*
pKey
);
int
taosAuthenticateMsg
(
uint8_t
*
pMsg
,
int
msgLen
,
uint8_t
*
pAuth
,
uint8_t
*
pKey
);
int
taosBuildAuthHeader
(
uint8_t
*
pMsg
,
int
msgLen
,
uint8_t
*
pAuth
,
uint8_t
*
pKey
);
int
taosBuildAuthHeader
(
uint8_t
*
pMsg
,
int
msgLen
,
uint8_t
*
pAuth
,
uint8_t
*
pKey
);
static
int32_t
taosCompressRpcMsg
(
char
*
pCont
,
int32_t
contLen
)
{
STaosHeader
*
pHeader
=
(
STaosHeader
*
)(
pCont
-
sizeof
(
STaosHeader
));
int32_t
overhead
=
sizeof
(
int32_t
)
*
2
;
int32_t
finalLen
=
0
;
if
(
!
NEEDTO_COMPRESSS_MSG
(
contLen
))
{
return
contLen
;
}
char
*
buf
=
malloc
(
contLen
+
overhead
+
8
);
// 16 extra bytes
if
(
buf
==
NULL
)
{
tError
(
"failed to allocate memory for rpc msg compression, contLen:%d, reason:%s"
,
contLen
,
strerror
(
errno
));
return
contLen
;
}
int32_t
compLen
=
LZ4_compress_default
(
pCont
,
buf
,
contLen
,
contLen
+
overhead
);
/*
* only the compressed size is less than the value of contLen - overhead, the compression is applied
* The first four bytes is set to 0, the second four bytes are utilized to keep the original length of message
*/
if
(
compLen
<
contLen
-
overhead
)
{
//tDump(pCont, contLen);
int32_t
*
pLen
=
(
int32_t
*
)
pCont
;
*
pLen
=
0
;
// first 4 bytes must be zero
pLen
=
(
int32_t
*
)(
pCont
+
sizeof
(
int32_t
));
*
pLen
=
htonl
(
contLen
);
// contLen is encoded in second 4 bytes
memcpy
(
pCont
+
overhead
,
buf
,
compLen
);
pHeader
->
comp
=
1
;
tTrace
(
"compress rpc msg, before:%lld, after:%lld"
,
contLen
,
compLen
);
finalLen
=
compLen
+
overhead
;
//tDump(pCont, contLen);
}
else
{
finalLen
=
contLen
;
}
free
(
buf
);
return
finalLen
;
}
static
STaosHeader
*
taosDecompressRpcMsg
(
STaosHeader
*
pHeader
,
SSchedMsg
*
pSchedMsg
,
int32_t
msgLen
)
{
int
overhead
=
sizeof
(
int32_t
)
*
2
;
if
(
pHeader
->
comp
==
0
)
{
pSchedMsg
->
msg
=
(
char
*
)(
&
(
pHeader
->
destId
));
return
pHeader
;
}
// decompress the content
assert
(
GET_INT32_VAL
(
pHeader
->
content
)
==
0
);
// contLen is original message length before compression applied
int
contLen
=
htonl
(
GET_INT32_VAL
(
pHeader
->
content
+
sizeof
(
int32_t
)));
// prepare the temporary buffer to decompress message
char
*
buf
=
malloc
(
sizeof
(
STaosHeader
)
+
contLen
);
//tDump(pHeader->content, msgLen);
if
(
buf
)
{
int32_t
originalLen
=
LZ4_decompress_safe
(
pHeader
->
content
+
overhead
,
buf
+
sizeof
(
STaosHeader
),
msgLen
-
overhead
,
contLen
);
memcpy
(
buf
,
pHeader
,
sizeof
(
STaosHeader
));
free
(
pHeader
);
// free the compressed message buffer
STaosHeader
*
pNewHeader
=
(
STaosHeader
*
)
buf
;
pNewHeader
->
msgLen
=
originalLen
+
(
int
)
sizeof
(
SIntMsg
);
assert
(
originalLen
==
contLen
);
pSchedMsg
->
msg
=
(
char
*
)(
&
(
pNewHeader
->
destId
));
//tDump(pHeader->content, contLen);
return
pNewHeader
;
}
else
{
tError
(
"failed to allocate memory to decompress msg, contLen:%d, reason:%s"
,
contLen
,
strerror
(
errno
));
pSchedMsg
->
msg
=
NULL
;
}
}
char
*
taosBuildReqHeader
(
void
*
param
,
char
type
,
char
*
msg
)
{
char
*
taosBuildReqHeader
(
void
*
param
,
char
type
,
char
*
msg
)
{
STaosHeader
*
pHeader
;
STaosHeader
*
pHeader
;
SRpcConn
*
pConn
=
(
SRpcConn
*
)
param
;
SRpcConn
*
pConn
=
(
SRpcConn
*
)
param
;
...
@@ -1074,8 +1155,9 @@ void *taosProcessDataFromPeer(char *data, int dataLen, uint32_t ip, uint16_t por
...
@@ -1074,8 +1155,9 @@ void *taosProcessDataFromPeer(char *data, int dataLen, uint32_t ip, uint16_t por
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
// parsing error
// parsing error
if
(
pHeader
->
msgType
&
1
)
{
if
(
pHeader
->
msgType
&
1
U
)
{
memset
(
pReply
,
0
,
sizeof
(
pReply
));
memset
(
pReply
,
0
,
sizeof
(
pReply
));
msgLen
=
taosBuildErrorMsgToPeer
(
data
,
code
,
pReply
);
msgLen
=
taosBuildErrorMsgToPeer
(
data
,
code
,
pReply
);
(
*
taosSendData
[
pServer
->
type
])(
ip
,
port
,
pReply
,
msgLen
,
chandle
);
(
*
taosSendData
[
pServer
->
type
])(
ip
,
port
,
pReply
,
msgLen
,
chandle
);
tTrace
(
"%s cid:%d sid:%d id:%s, %s is sent with error code:%u pConn:%p"
,
pServer
->
label
,
chann
,
sid
,
tTrace
(
"%s cid:%d sid:%d id:%s, %s is sent with error code:%u pConn:%p"
,
pServer
->
label
,
chann
,
sid
,
...
@@ -1090,17 +1172,17 @@ void *taosProcessDataFromPeer(char *data, int dataLen, uint32_t ip, uint16_t por
...
@@ -1090,17 +1172,17 @@ void *taosProcessDataFromPeer(char *data, int dataLen, uint32_t ip, uint16_t por
// parsing OK
// parsing OK
// internal communication is based on TAOS protocol, a trick here to make it efficient
// internal communication is based on TAOS protocol, a trick here to make it efficient
pHeader
->
msgLen
=
msgLen
-
(
int
)
sizeof
(
STaosHeader
)
+
(
int
)
sizeof
(
SIntMsg
);
if
(
pHeader
->
spi
)
msgLen
-=
sizeof
(
STaosDigest
);
if
(
pHeader
->
spi
)
pHeader
->
msgLen
-=
sizeof
(
STaosDigest
);
msgLen
-=
(
int
)
sizeof
(
STaosHeader
);
pHeader
->
msgLen
=
msgLen
+
(
int
)
sizeof
(
SIntMsg
);
if
((
pHeader
->
msgType
&
1
)
==
0
&&
(
pHeader
->
content
[
0
]
==
TSDB_CODE_INVALID_VALUE
))
{
if
((
pHeader
->
msgType
&
1
U
)
==
0
&&
(
pHeader
->
content
[
0
]
==
TSDB_CODE_INVALID_VALUE
))
{
schedMsg
.
msg
=
NULL
;
// connection shall be closed
schedMsg
.
msg
=
NULL
;
// connection shall be closed
}
else
{
}
else
{
schedMsg
.
msg
=
(
char
*
)(
&
(
pHeader
->
destId
));
pHeader
=
taosDecompressRpcMsg
(
pHeader
,
&
schedMsg
,
msgLen
);
// memcpy(schedMsg.msg, (char *)(&(pHeader->destId)), pHeader->msgLen);
}
}
if
(
pHeader
->
msgType
<
TSDB_MSG_TYPE_HEARTBEAT
||
(
rpcDebugFlag
&
16
))
{
if
(
pHeader
->
msgType
<
TSDB_MSG_TYPE_HEARTBEAT
||
(
rpcDebugFlag
&
16
U
))
{
tTrace
(
"%s cid:%d sid:%d id:%s, %s is put into queue, msgLen:%d pConn:%p pTimer:%p"
,
pServer
->
label
,
chann
,
sid
,
tTrace
(
"%s cid:%d sid:%d id:%s, %s is put into queue, msgLen:%d pConn:%p pTimer:%p"
,
pServer
->
label
,
chann
,
sid
,
pHeader
->
meterId
,
taosMsg
[
pHeader
->
msgType
],
pHeader
->
msgLen
,
pConn
,
pConn
->
pTimer
);
pHeader
->
meterId
,
taosMsg
[
pHeader
->
msgType
],
pHeader
->
msgLen
,
pConn
,
pConn
->
pTimer
);
}
}
...
@@ -1132,9 +1214,12 @@ int taosSendMsgToPeerH(void *thandle, char *pCont, int contLen, void *ahandle) {
...
@@ -1132,9 +1214,12 @@ int taosSendMsgToPeerH(void *thandle, char *pCont, int contLen, void *ahandle) {
pChann
=
pServer
->
channList
+
pConn
->
chann
;
pChann
=
pServer
->
channList
+
pConn
->
chann
;
pHeader
=
(
STaosHeader
*
)(
pCont
-
sizeof
(
STaosHeader
));
pHeader
=
(
STaosHeader
*
)(
pCont
-
sizeof
(
STaosHeader
));
msg
=
(
char
*
)
pHeader
;
msg
=
(
char
*
)
pHeader
;
msgLen
=
contLen
+
(
int32_t
)
sizeof
(
STaosHeader
);
if
((
pHeader
->
msgType
&
1
)
==
0
&&
pConn
->
localPort
)
pHeader
->
port
=
pConn
->
localPort
;
if
((
pHeader
->
msgType
&
1U
)
==
0
&&
pConn
->
localPort
)
pHeader
->
port
=
pConn
->
localPort
;
contLen
=
taosCompressRpcMsg
(
pCont
,
contLen
);
msgLen
=
contLen
+
(
int32_t
)
sizeof
(
STaosHeader
);
if
(
pConn
->
spi
)
{
if
(
pConn
->
spi
)
{
// add auth part
// add auth part
...
@@ -1151,7 +1236,7 @@ int taosSendMsgToPeerH(void *thandle, char *pCont, int contLen, void *ahandle) {
...
@@ -1151,7 +1236,7 @@ int taosSendMsgToPeerH(void *thandle, char *pCont, int contLen, void *ahandle) {
pthread_mutex_lock
(
&
pChann
->
mutex
);
pthread_mutex_lock
(
&
pChann
->
mutex
);
msgType
=
pHeader
->
msgType
;
msgType
=
pHeader
->
msgType
;
if
((
msgType
&
1
)
==
0
)
{
if
((
msgType
&
1
U
)
==
0
)
{
// response
// response
pConn
->
inType
=
0
;
pConn
->
inType
=
0
;
tfree
(
pConn
->
pRspMsg
);
tfree
(
pConn
->
pRspMsg
);
...
...
src/system/detail/inc/mgmt.h
浏览文件 @
495bb309
...
@@ -410,6 +410,9 @@ int mgmtRetrieveScores(SShowObj *pShow, char *data, int rows, SConnObj *pConn);
...
@@ -410,6 +410,9 @@ int mgmtRetrieveScores(SShowObj *pShow, char *data, int rows, SConnObj *pConn);
int
grantGetGrantsMeta
(
SMeterMeta
*
pMeta
,
SShowObj
*
pShow
,
SConnObj
*
pConn
);
int
grantGetGrantsMeta
(
SMeterMeta
*
pMeta
,
SShowObj
*
pShow
,
SConnObj
*
pConn
);
int
grantRetrieveGrants
(
SShowObj
*
pShow
,
char
*
data
,
int
rows
,
SConnObj
*
pConn
);
int
grantRetrieveGrants
(
SShowObj
*
pShow
,
char
*
data
,
int
rows
,
SConnObj
*
pConn
);
int
mgmtGetVnodeMeta
(
SMeterMeta
*
pMeta
,
SShowObj
*
pShow
,
SConnObj
*
pConn
);
int
mgmtRetrieveVnodes
(
SShowObj
*
pShow
,
char
*
data
,
int
rows
,
SConnObj
*
pConn
);
// dnode balance api
// dnode balance api
int
mgmtInitBalance
();
int
mgmtInitBalance
();
void
mgmtCleanupBalance
();
void
mgmtCleanupBalance
();
...
...
src/system/detail/src/mgmtDnode.c
浏览文件 @
495bb309
...
@@ -389,3 +389,119 @@ int mgmtRetrieveConfigs(SShowObj *pShow, char *data, int rows, SConnObj *pConn)
...
@@ -389,3 +389,119 @@ int mgmtRetrieveConfigs(SShowObj *pShow, char *data, int rows, SConnObj *pConn)
pShow
->
numOfReads
+=
numOfRows
;
pShow
->
numOfReads
+=
numOfRows
;
return
numOfRows
;
return
numOfRows
;
}
}
int
mgmtGetVnodeMeta
(
SMeterMeta
*
pMeta
,
SShowObj
*
pShow
,
SConnObj
*
pConn
)
{
int
cols
=
0
;
if
(
strcmp
(
pConn
->
pAcct
->
user
,
"root"
)
!=
0
)
return
TSDB_CODE_NO_RIGHTS
;
SSchema
*
pSchema
=
tsGetSchema
(
pMeta
);
pShow
->
bytes
[
cols
]
=
4
;
pSchema
[
cols
].
type
=
TSDB_DATA_TYPE_INT
;
strcpy
(
pSchema
[
cols
].
name
,
"vnode"
);
pSchema
[
cols
].
bytes
=
htons
(
pShow
->
bytes
[
cols
]);
cols
++
;
pShow
->
bytes
[
cols
]
=
4
;
pSchema
[
cols
].
type
=
TSDB_DATA_TYPE_INT
;
strcpy
(
pSchema
[
cols
].
name
,
"vgid"
);
pSchema
[
cols
].
bytes
=
htons
(
pShow
->
bytes
[
cols
]);
cols
++
;
pShow
->
bytes
[
cols
]
=
12
;
pSchema
[
cols
].
type
=
TSDB_DATA_TYPE_BINARY
;
strcpy
(
pSchema
[
cols
].
name
,
"status"
);
pSchema
[
cols
].
bytes
=
htons
(
pShow
->
bytes
[
cols
]);
cols
++
;
pShow
->
bytes
[
cols
]
=
12
;
pSchema
[
cols
].
type
=
TSDB_DATA_TYPE_BINARY
;
strcpy
(
pSchema
[
cols
].
name
,
"sync status"
);
pSchema
[
cols
].
bytes
=
htons
(
pShow
->
bytes
[
cols
]);
cols
++
;
pMeta
->
numOfColumns
=
htons
(
cols
);
pShow
->
numOfColumns
=
cols
;
pShow
->
offset
[
0
]
=
0
;
for
(
int
i
=
1
;
i
<
cols
;
++
i
)
pShow
->
offset
[
i
]
=
pShow
->
offset
[
i
-
1
]
+
pShow
->
bytes
[
i
-
1
];
// TODO: if other thread drop dnode ????
SDnodeObj
*
pDnode
=
NULL
;
if
(
pShow
->
payloadLen
>
0
)
{
uint32_t
ip
=
ip2uint
(
pShow
->
payload
);
pDnode
=
mgmtGetDnode
(
ip
);
if
(
NULL
==
pDnode
)
{
return
TSDB_CODE_NODE_OFFLINE
;
}
pShow
->
numOfRows
=
pDnode
->
openVnodes
;
pShow
->
pNode
=
pDnode
;
}
else
{
while
(
true
)
{
pShow
->
pNode
=
mgmtGetNextDnode
(
pShow
,
(
SDnodeObj
**
)
&
pDnode
);
if
(
pDnode
==
NULL
)
break
;
pShow
->
numOfRows
+=
pDnode
->
openVnodes
;
if
(
0
==
pShow
->
numOfRows
)
return
TSDB_CODE_NODE_OFFLINE
;
}
pShow
->
pNode
=
NULL
;
}
pShow
->
rowSize
=
pShow
->
offset
[
cols
-
1
]
+
pShow
->
bytes
[
cols
-
1
];
return
0
;
}
int
mgmtRetrieveVnodes
(
SShowObj
*
pShow
,
char
*
data
,
int
rows
,
SConnObj
*
pConn
)
{
int
numOfRows
=
0
;
SDnodeObj
*
pDnode
=
NULL
;
char
*
pWrite
;
int
cols
=
0
;
char
ipstr
[
20
];
if
(
0
==
rows
)
return
0
;
if
(
pShow
->
payloadLen
)
{
// output the vnodes info of the designated dnode. And output all vnodes of this dnode, instead of rows (max 100)
pDnode
=
(
SDnodeObj
*
)(
pShow
->
pNode
);
if
(
pDnode
!=
NULL
)
{
SVnodeLoad
*
pVnode
;
for
(
int
i
=
0
;
i
<
TSDB_MAX_VNODES
;
i
++
)
{
pVnode
=
&
pDnode
->
vload
[
i
];
if
(
0
==
pVnode
->
vgId
)
{
continue
;
}
pWrite
=
data
+
pShow
->
offset
[
cols
]
*
rows
+
pShow
->
bytes
[
cols
]
*
numOfRows
;
*
(
uint32_t
*
)
pWrite
=
pVnode
->
vnode
;
cols
++
;
pWrite
=
data
+
pShow
->
offset
[
cols
]
*
rows
+
pShow
->
bytes
[
cols
]
*
numOfRows
;
*
(
uint32_t
*
)
pWrite
=
pVnode
->
vgId
;
cols
++
;
pWrite
=
data
+
pShow
->
offset
[
cols
]
*
rows
+
pShow
->
bytes
[
cols
]
*
numOfRows
;
strcpy
(
pWrite
,
taosGetVnodeStatusStr
(
pVnode
->
status
));
cols
++
;
pWrite
=
data
+
pShow
->
offset
[
cols
]
*
rows
+
pShow
->
bytes
[
cols
]
*
numOfRows
;
strcpy
(
pWrite
,
taosGetVnodeSyncStatusStr
(
pVnode
->
syncStatus
));
cols
++
;
numOfRows
++
;
}
}
}
else
{
// TODO: output all vnodes of all dnodes
numOfRows
=
0
;
}
pShow
->
numOfReads
+=
numOfRows
;
return
numOfRows
;
}
src/system/detail/src/mgmtMeter.c
浏览文件 @
495bb309
...
@@ -675,7 +675,7 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) {
...
@@ -675,7 +675,7 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) {
// send create message to the selected vnode servers
// send create message to the selected vnode servers
if
(
pCreate
->
numOfTags
==
0
)
{
if
(
pCreate
->
numOfTags
==
0
)
{
mTrace
(
"table:%s, send create msg to dnode, vgId:%d, sid:%d, vnode:%d"
,
mTrace
(
"table:%s, send create
table
msg to dnode, vgId:%d, sid:%d, vnode:%d"
,
pMeter
->
meterId
,
pMeter
->
gid
.
vgId
,
pMeter
->
gid
.
sid
,
pVgroup
->
vnodeGid
[
0
].
vnode
);
pMeter
->
meterId
,
pMeter
->
gid
.
vgId
,
pMeter
->
gid
.
sid
,
pVgroup
->
vnodeGid
[
0
].
vnode
);
grantAddTimeSeries
(
pMeter
->
numOfColumns
-
1
);
grantAddTimeSeries
(
pMeter
->
numOfColumns
-
1
);
...
...
src/system/detail/src/mgmtShell.c
浏览文件 @
495bb309
...
@@ -788,12 +788,14 @@ int (*mgmtGetMetaFp[])(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) = {
...
@@ -788,12 +788,14 @@ int (*mgmtGetMetaFp[])(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) = {
mgmtGetAcctMeta
,
mgmtGetUserMeta
,
mgmtGetDbMeta
,
mgmtGetMeterMeta
,
mgmtGetDnodeMeta
,
mgmtGetAcctMeta
,
mgmtGetUserMeta
,
mgmtGetDbMeta
,
mgmtGetMeterMeta
,
mgmtGetDnodeMeta
,
mgmtGetMnodeMeta
,
mgmtGetVgroupMeta
,
mgmtGetMetricMeta
,
mgmtGetModuleMeta
,
mgmtGetQueryMeta
,
mgmtGetMnodeMeta
,
mgmtGetVgroupMeta
,
mgmtGetMetricMeta
,
mgmtGetModuleMeta
,
mgmtGetQueryMeta
,
mgmtGetStreamMeta
,
mgmtGetConfigMeta
,
mgmtGetConnsMeta
,
mgmtGetScoresMeta
,
grantGetGrantsMeta
,
mgmtGetStreamMeta
,
mgmtGetConfigMeta
,
mgmtGetConnsMeta
,
mgmtGetScoresMeta
,
grantGetGrantsMeta
,
mgmtGetVnodeMeta
,
};
};
int
(
*
mgmtRetrieveFp
[])(
SShowObj
*
pShow
,
char
*
data
,
int
rows
,
SConnObj
*
pConn
)
=
{
int
(
*
mgmtRetrieveFp
[])(
SShowObj
*
pShow
,
char
*
data
,
int
rows
,
SConnObj
*
pConn
)
=
{
mgmtRetrieveAccts
,
mgmtRetrieveUsers
,
mgmtRetrieveDbs
,
mgmtRetrieveMeters
,
mgmtRetrieveDnodes
,
mgmtRetrieveAccts
,
mgmtRetrieveUsers
,
mgmtRetrieveDbs
,
mgmtRetrieveMeters
,
mgmtRetrieveDnodes
,
mgmtRetrieveMnodes
,
mgmtRetrieveVgroups
,
mgmtRetrieveMetrics
,
mgmtRetrieveModules
,
mgmtRetrieveQueries
,
mgmtRetrieveMnodes
,
mgmtRetrieveVgroups
,
mgmtRetrieveMetrics
,
mgmtRetrieveModules
,
mgmtRetrieveQueries
,
mgmtRetrieveStreams
,
mgmtRetrieveConfigs
,
mgmtRetrieveConns
,
mgmtRetrieveScores
,
grantRetrieveGrants
,
mgmtRetrieveStreams
,
mgmtRetrieveConfigs
,
mgmtRetrieveConns
,
mgmtRetrieveScores
,
grantRetrieveGrants
,
mgmtRetrieveVnodes
,
};
};
int
mgmtProcessShowMsg
(
char
*
pMsg
,
int
msgLen
,
SConnObj
*
pConn
)
{
int
mgmtProcessShowMsg
(
char
*
pMsg
,
int
msgLen
,
SConnObj
*
pConn
)
{
...
...
src/system/detail/src/vnodeQueryImpl.c
浏览文件 @
495bb309
...
@@ -2952,11 +2952,11 @@ static int32_t vnodeOpenVnodeDBFiles(SQInfo *pQInfo, SQueryFileInfo *pVnodeFiles
...
@@ -2952,11 +2952,11 @@ static int32_t vnodeOpenVnodeDBFiles(SQInfo *pQInfo, SQueryFileInfo *pVnodeFiles
pVnodeFiles
->
dataFd
=
open
(
pVnodeFiles
->
dataFilePath
,
O_RDONLY
);
pVnodeFiles
->
dataFd
=
open
(
pVnodeFiles
->
dataFilePath
,
O_RDONLY
);
pVnodeFiles
->
lastFd
=
open
(
pVnodeFiles
->
lastFilePath
,
O_RDONLY
);
pVnodeFiles
->
lastFd
=
open
(
pVnodeFiles
->
lastFilePath
,
O_RDONLY
);
if
(
stat
(
pVnodeFiles
->
dataFilePath
,
&
fstat
)
<
0
)
return
-
1
;
//
if (stat(pVnodeFiles->dataFilePath, &fstat) < 0) return -1;
pVnodeFiles
->
dataFileSize
=
fstat
.
st_size
;
//
pVnodeFiles->dataFileSize = fstat.st_size;
//
if
(
stat
(
pVnodeFiles
->
lastFilePath
,
&
fstat
)
<
0
)
return
-
1
;
//
if (stat(pVnodeFiles->lastFilePath, &fstat) < 0) return -1;
pVnodeFiles
->
lastFileSize
=
fstat
.
st_size
;
//
pVnodeFiles->lastFileSize = fstat.st_size;
#if DEFAULT_IO_ENGINE == IO_ENGINE_MMAP
#if DEFAULT_IO_ENGINE == IO_ENGINE_MMAP
/* enforce kernel to preload data when the file is mapping */
/* enforce kernel to preload data when the file is mapping */
...
...
src/system/detail/src/vnodeRead.c
浏览文件 @
495bb309
...
@@ -483,13 +483,9 @@ void vnodeFreeQInfo(void *param, bool decQueryRef) {
...
@@ -483,13 +483,9 @@ void vnodeFreeQInfo(void *param, bool decQueryRef) {
}
}
tfree
(
pQuery
->
pGroupbyExpr
);
tfree
(
pQuery
->
pGroupbyExpr
);
dTrace
(
"QInfo:%p vid:%d sid:%d meterId:%s, QInfo is freed"
,
pQInfo
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
);
dTrace
(
"QInfo:%p vid:%d sid:%d meterId:%s, QInfo is freed"
,
pQInfo
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
);
/*
//destroy signature, in order to avoid the query process pass the object safety check
* destory signature, in order to avoid the query process pass the object
* safety check
*/
memset
(
pQInfo
,
0
,
sizeof
(
SQInfo
));
memset
(
pQInfo
,
0
,
sizeof
(
SQInfo
));
tfree
(
pQInfo
);
tfree
(
pQInfo
);
}
}
...
...
src/util/src/tglobalcfg.c
浏览文件 @
495bb309
...
@@ -644,6 +644,7 @@ static void doInitGlobalConfig() {
...
@@ -644,6 +644,7 @@ static void doInitGlobalConfig() {
tsInitConfigOption
(
cfg
++
,
"defaultPass"
,
tsDefaultPass
,
TSDB_CFG_VTYPE_STRING
,
tsInitConfigOption
(
cfg
++
,
"defaultPass"
,
tsDefaultPass
,
TSDB_CFG_VTYPE_STRING
,
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_CLIENT
|
TSDB_CFG_CTYPE_B_NOT_PRINT
,
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_CLIENT
|
TSDB_CFG_CTYPE_B_NOT_PRINT
,
0
,
0
,
TSDB_PASSWORD_LEN
,
TSDB_CFG_UTYPE_NONE
);
0
,
0
,
TSDB_PASSWORD_LEN
,
TSDB_CFG_UTYPE_NONE
);
// socket type, udp by default
// socket type, udp by default
tsInitConfigOption
(
cfg
++
,
"sockettype"
,
tsSocketType
,
TSDB_CFG_VTYPE_STRING
,
tsInitConfigOption
(
cfg
++
,
"sockettype"
,
tsSocketType
,
TSDB_CFG_VTYPE_STRING
,
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_CLIENT
|
TSDB_CFG_CTYPE_B_SHOW
,
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_CLIENT
|
TSDB_CFG_CTYPE_B_SHOW
,
...
...
src/util/src/ttokenizer.c
浏览文件 @
495bb309
...
@@ -224,6 +224,7 @@ static SKeyword keywordTable[] = {
...
@@ -224,6 +224,7 @@ static SKeyword keywordTable[] = {
{
"METRICS"
,
TK_METRICS
},
{
"METRICS"
,
TK_METRICS
},
{
"STABLE"
,
TK_STABLE
},
{
"STABLE"
,
TK_STABLE
},
{
"FILE"
,
TK_FILE
},
{
"FILE"
,
TK_FILE
},
{
"VNODES"
,
TK_VNODES
},
};
};
/* This is the hash table */
/* This is the hash table */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录