Merge branch 'develop' into coverity_scan
This commit is contained in:
commit
de7b632ac4
|
@ -14,12 +14,9 @@
|
|||
# local fully qualified domain name (FQDN)
|
||||
# fqdn hostname
|
||||
|
||||
# first port number for the connection (10 continuous UDP/TCP port number are used)
|
||||
# first port number for the connection (12 continuous UDP/TCP port number are used)
|
||||
# serverPort 6030
|
||||
|
||||
# http service port, default tcp [6041]
|
||||
# httpPort 6041
|
||||
|
||||
# log file's directory
|
||||
# logDir /var/log/taos
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ ! -d /var/lib/taos ]; then
|
||||
mkdir -p /var/lib/taos
|
||||
fi
|
||||
|
||||
if [ ! -d /var/log/taos ]; then
|
||||
mkdir -p -m777 /var/log/taos
|
||||
fi
|
||||
|
||||
if [ ! -d /etc/taos ]; then
|
||||
mkdir -p /etc/taos
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/taos/taos.cfg ]; then
|
||||
cp $SNAP/etc/taos/taos.cfg /etc/taos/taos.cfg
|
||||
fi
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
# Wrapper to check for custom config in $SNAP_USER_COMMON or $SNAP_COMMON and
|
||||
# use it otherwise fall back to the included basic config which will at least
|
||||
# allow mosquitto to run and do something.
|
||||
# This script will also copy the full example config in to SNAP_USER_COMMON or
|
||||
# SNAP_COMMON so that people can refer to it.
|
||||
#
|
||||
# The decision about whether to use SNAP_USER_COMMON or SNAP_COMMON is taken
|
||||
# based on the user that runs the command. If the user is root, it is assumed
|
||||
# that mosquitto is being run as a system daemon, and SNAP_COMMON will be used.
|
||||
# If a non-root user runs the command, then SNAP_USER_COMMON will be used.
|
||||
|
||||
case "$SNAP_USER_COMMON" in
|
||||
*/root/snap/tdengine/common*) COMMON=$SNAP_COMMON ;;
|
||||
*) COMMON=$SNAP_USER_COMMON ;;
|
||||
esac
|
||||
|
||||
if [ -d /etc/taos ]; then
|
||||
CONFIG_FILE="/etc/taos"
|
||||
else
|
||||
CONFIG_FILE="$SNAP/etc/taos"
|
||||
fi
|
||||
|
||||
# Launch the snap
|
||||
$SNAP/usr/bin/taosd -c $CONFIG_FILE $@
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
# Wrapper to check for custom config in $SNAP_USER_COMMON or $SNAP_COMMON and
|
||||
# use it otherwise fall back to the included basic config which will at least
|
||||
# allow mosquitto to run and do something.
|
||||
# This script will also copy the full example config in to SNAP_USER_COMMON or
|
||||
# SNAP_COMMON so that people can refer to it.
|
||||
#
|
||||
# The decision about whether to use SNAP_USER_COMMON or SNAP_COMMON is taken
|
||||
# based on the user that runs the command. If the user is root, it is assumed
|
||||
# that mosquitto is being run as a system daemon, and SNAP_COMMON will be used.
|
||||
# If a non-root user runs the command, then SNAP_USER_COMMON will be used.
|
||||
|
||||
case "$SNAP_USER_COMMON" in
|
||||
*/root/snap/tdengine/common*) COMMON=$SNAP_COMMON ;;
|
||||
*) COMMON=$SNAP_USER_COMMON ;;
|
||||
esac
|
||||
|
||||
if [ -d /etc/taos ]; then
|
||||
CONFIG_FILE="/etc/taos"
|
||||
else
|
||||
CONFIG_FILE="$SNAP/etc/taos"
|
||||
fi
|
||||
|
||||
# Launch the snap
|
||||
$SNAP/usr/bin/taos -c $CONFIG_FILE $@
|
|
@ -0,0 +1,113 @@
|
|||
name: tdengine
|
||||
base: core18 # the base snap is the execution environment for this snap
|
||||
version: '2.0.0.6' # just for humans, typically '1.2+git' or '1.3.2'
|
||||
icon: snap/gui/t-dengine.svg
|
||||
summary: an open-source big data platform designed and optimized for IoT.
|
||||
description: |
|
||||
TDengine is an open-source big data platform designed and optimized for Internet of Things (IoT), Connected Vehicles, and Industrial IoT. Besides the 10x faster time-series database, it provides caching, stream computing, message queuing and other functionalities to reduce the complexity and costs of development and operations.
|
||||
|
||||
grade: stable
|
||||
confinement: classic
|
||||
|
||||
apps:
|
||||
tdengine:
|
||||
command: launcher.sh
|
||||
daemon: simple
|
||||
restart-condition: always
|
||||
plugs:
|
||||
- network
|
||||
- network-bind
|
||||
- system-observe
|
||||
- systemfiles
|
||||
|
||||
taos:
|
||||
command: taoswrapper.sh
|
||||
plugs:
|
||||
- network
|
||||
- systemfiles
|
||||
|
||||
taosdemo:
|
||||
command: usr/bin/taosdemo
|
||||
plugs:
|
||||
- network
|
||||
|
||||
plugs:
|
||||
systemfiles:
|
||||
interface: system-files
|
||||
read:
|
||||
- /etc/taos
|
||||
- /var/lib/taos
|
||||
- /tmp
|
||||
write:
|
||||
- /var/log/taos
|
||||
- /var/lib/taos
|
||||
- /tmp
|
||||
|
||||
parts:
|
||||
script:
|
||||
plugin: dump
|
||||
source: snap/local/
|
||||
prime:
|
||||
- launcher.sh
|
||||
- taoswrapper.sh
|
||||
|
||||
tdengine:
|
||||
source: .
|
||||
source-type: local
|
||||
plugin: cmake
|
||||
build-packages:
|
||||
- gcc
|
||||
- g++
|
||||
- make
|
||||
- cmake
|
||||
override-build: |
|
||||
snapcraftctl build
|
||||
if [ ! -d $SNAPCRAFT_STAGE/usr ]; then
|
||||
mkdir $SNAPCRAFT_STAGE/usr
|
||||
fi
|
||||
|
||||
if [ ! -d $SNAPCRAFT_STAGE/etc/taos ]; then
|
||||
mkdir -p $SNAPCRAFT_STAGE/etc/taos
|
||||
fi
|
||||
|
||||
cp $SNAPCRAFT_PART_BUILD/build/* -rf $SNAPCRAFT_STAGE/usr/
|
||||
cp $SNAPCRAFT_PART_SRC/packaging/cfg/taos.cfg -rf $SNAPCRAFT_STAGE/etc/taos/
|
||||
|
||||
if [ ! -d $SNAPCRAFT_STAGE/var/lib/taos ]; then
|
||||
mkdir -p $SNAPCRAFT_STAGE/var/lib/taos
|
||||
fi
|
||||
if [ ! -d $SNAPCRAFT_STAGE/var/log/taos ]; then
|
||||
mkdir -p $SNAPCRAFT_STAGE/var/log/taos
|
||||
fi
|
||||
|
||||
prime:
|
||||
- etc/taos/taos.cfg
|
||||
- usr/bin/taosd
|
||||
- usr/bin/taos
|
||||
- usr/bin/taosdemo
|
||||
- usr/lib/libtaos.so.2.0.0.6
|
||||
- usr/lib/libtaos.so.1
|
||||
- usr/lib/libtaos.so
|
||||
|
||||
override-prime: |
|
||||
snapcraftctl prime
|
||||
if [ ! -d $SNAPCRAFT_STAGE/var/lib/taos ]; then
|
||||
cp -rf $SNAPCRAFT_STAGE/var/lib/taos $SNAPCRAFT_PRIME
|
||||
fi
|
||||
if [ ! -d $SNAPCRAFT_STAGE/var/log/taos ]; then
|
||||
cp -rf $SNAPCRAFT_STAGE/var/log/taos $SNAPCRAFT_PRIME
|
||||
fi
|
||||
|
||||
layout:
|
||||
/var/lib/taos:
|
||||
bind: $SNAP_DATA/var/lib/taos
|
||||
/var/log/taos:
|
||||
bind: $SNAP_DATA/var/log/taos
|
||||
/etc/taos/taos.cfg:
|
||||
bind-file: $SNAP_DATA/etc/taos/taos.cfg
|
||||
|
||||
|
||||
hooks:
|
||||
install:
|
||||
plugs: [systemfiles]
|
||||
|
|
@ -118,6 +118,7 @@ static void balanceSwapVnodeGid(SVnodeGid *pVnodeGid1, SVnodeGid *pVnodeGid2) {
|
|||
}
|
||||
|
||||
int32_t balanceAllocVnodes(SVgObj *pVgroup) {
|
||||
static int32_t randIndex = 0;
|
||||
int32_t dnode = 0;
|
||||
int32_t vnodes = 0;
|
||||
|
||||
|
@ -160,7 +161,7 @@ int32_t balanceAllocVnodes(SVgObj *pVgroup) {
|
|||
*/
|
||||
if (pVgroup->numOfVnodes == 1) {
|
||||
} else if (pVgroup->numOfVnodes == 2) {
|
||||
if (rand() % 2 == 0) {
|
||||
if (randIndex++ % 2 == 0) {
|
||||
balanceSwapVnodeGid(pVgroup->vnodeGid, pVgroup->vnodeGid + 1);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -3,6 +3,7 @@ taos_init
|
|||
taos_cleanup
|
||||
taos_options
|
||||
taos_connect
|
||||
taos_connect_auth
|
||||
taos_close
|
||||
taos_stmt_init
|
||||
taos_stmt_prepare
|
||||
|
|
|
@ -904,6 +904,11 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql) {
|
|||
sToken = tStrGetToken(sql, &index, true, numOfIgnoreToken, &ignoreTokenTypes);
|
||||
sql += index;
|
||||
|
||||
if (TK_ILLEGAL == sToken.type) {
|
||||
tdDestroyKVRowBuilder(&kvRowBuilder);
|
||||
return TSDB_CODE_TSC_INVALID_SQL;
|
||||
}
|
||||
|
||||
if (sToken.n == 0 || sToken.type == TK_RP) {
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1158,8 +1158,9 @@ static int32_t handleArithmeticExpr(SSqlCmd* pCmd, int32_t clauseIndex, int32_t
|
|||
|
||||
int32_t ret = exprTreeFromSqlExpr(pCmd, &pNode, pItem->pNode, pQueryInfo->exprList, pQueryInfo, colList);
|
||||
if (ret != TSDB_CODE_SUCCESS) {
|
||||
tExprTreeDestroy(&pNode, NULL);
|
||||
taosTFree(arithmeticExprStr);
|
||||
taosArrayDestroy(colList);
|
||||
tExprTreeDestroy(&pNode, NULL);
|
||||
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2);
|
||||
}
|
||||
|
||||
|
@ -1168,6 +1169,8 @@ static int32_t handleArithmeticExpr(SSqlCmd* pCmd, int32_t clauseIndex, int32_t
|
|||
SColIndex* pIndex = taosArrayGet(colList, k);
|
||||
if (pIndex->flag == 1) {
|
||||
taosTFree(arithmeticExprStr);
|
||||
taosArrayDestroy(colList);
|
||||
tExprTreeDestroy(&pNode, NULL);
|
||||
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,6 +158,7 @@ void tscProcessHeartBeatRsp(void *param, TAOS_RES *tres, int code) {
|
|||
|
||||
if (pRsp->killConnection) {
|
||||
tscKillConnection(pObj);
|
||||
return;
|
||||
} else {
|
||||
if (pRsp->queryId) tscKillQuery(pObj, htonl(pRsp->queryId));
|
||||
if (pRsp->streamId) tscKillStream(pObj, htonl(pRsp->streamId));
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "hash.h"
|
||||
#include "os.h"
|
||||
#include "qAst.h"
|
||||
#include "tkey.h"
|
||||
#include "tcache.h"
|
||||
#include "tnote.h"
|
||||
#include "trpc.h"
|
||||
|
@ -47,8 +48,8 @@ static bool validPassword(const char* passwd) {
|
|||
return validImpl(passwd, TSDB_PASSWORD_LEN - 1);
|
||||
}
|
||||
|
||||
SSqlObj *taosConnectImpl(const char *ip, const char *user, const char *pass, const char *db, uint16_t port,
|
||||
void (*fp)(void *, TAOS_RES *, int), void *param, void **taos) {
|
||||
SSqlObj *taosConnectImpl(const char *ip, const char *user, const char *pass, const char *auth, const char *db,
|
||||
uint16_t port, void (*fp)(void *, TAOS_RES *, int), void *param, void **taos) {
|
||||
taos_init();
|
||||
|
||||
if (!validUserName(user)) {
|
||||
|
@ -56,9 +57,28 @@ SSqlObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (!validPassword(pass)) {
|
||||
terrno = TSDB_CODE_TSC_INVALID_PASS_LENGTH;
|
||||
return NULL;
|
||||
char secretEncrypt[32] = {0};
|
||||
int secretEncryptLen = 0;
|
||||
if (auth == NULL) {
|
||||
if (!validPassword(pass)) {
|
||||
terrno = TSDB_CODE_TSC_INVALID_PASS_LENGTH;
|
||||
return NULL;
|
||||
}
|
||||
taosEncryptPass((uint8_t *)pass, strlen(pass), secretEncrypt);
|
||||
} else {
|
||||
int outlen = 0;
|
||||
int len = (int)strlen(auth);
|
||||
char *base64 = (char *)base64_decode(auth, len, &outlen);
|
||||
if (base64 == NULL || outlen == 0) {
|
||||
tscError("invalid auth info:%s", auth);
|
||||
free(base64);
|
||||
terrno = TSDB_CODE_TSC_INVALID_PASS_LENGTH;
|
||||
return NULL;
|
||||
} else {
|
||||
memcpy(secretEncrypt, base64, outlen);
|
||||
free(base64);
|
||||
}
|
||||
secretEncryptLen = outlen;
|
||||
}
|
||||
|
||||
if (ip) {
|
||||
|
@ -67,7 +87,7 @@ SSqlObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con
|
|||
}
|
||||
|
||||
void *pDnodeConn = NULL;
|
||||
if (tscInitRpc(user, pass, &pDnodeConn) != 0) {
|
||||
if (tscInitRpc(user, secretEncrypt, &pDnodeConn) != 0) {
|
||||
terrno = TSDB_CODE_RPC_NETWORK_UNAVAIL;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -82,7 +102,8 @@ SSqlObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con
|
|||
pObj->signature = pObj;
|
||||
|
||||
tstrncpy(pObj->user, user, sizeof(pObj->user));
|
||||
taosEncryptPass((uint8_t *)pass, strlen(pass), pObj->pass);
|
||||
secretEncryptLen = MIN(secretEncryptLen, sizeof(pObj->pass));
|
||||
memcpy(pObj->pass, secretEncrypt, secretEncryptLen);
|
||||
|
||||
if (db) {
|
||||
int32_t len = (int32_t)strlen(db);
|
||||
|
@ -144,13 +165,10 @@ static void syncConnCallback(void *param, TAOS_RES *tres, int code) {
|
|||
tsem_post(&pSql->rspSem);
|
||||
}
|
||||
|
||||
TAOS *taos_connect(const char *ip, const char *user, const char *pass, const char *db, uint16_t port) {
|
||||
tscDebug("try to create a connection to %s:%u, user:%s db:%s", ip, port, user, db);
|
||||
if (user == NULL) user = TSDB_DEFAULT_USER;
|
||||
if (pass == NULL) pass = TSDB_DEFAULT_PASS;
|
||||
|
||||
STscObj* pObj = NULL;
|
||||
SSqlObj *pSql = taosConnectImpl(ip, user, pass, db, port, syncConnCallback, NULL, (void**) &pObj);
|
||||
TAOS *taos_connect_internal(const char *ip, const char *user, const char *pass, const char *auth, const char *db,
|
||||
uint16_t port) {
|
||||
STscObj *pObj = NULL;
|
||||
SSqlObj *pSql = taosConnectImpl(ip, user, pass, auth, db, port, syncConnCallback, NULL, (void **)&pObj);
|
||||
if (pSql != NULL) {
|
||||
pSql->fp = syncConnCallback;
|
||||
pSql->param = pSql;
|
||||
|
@ -182,23 +200,38 @@ TAOS *taos_connect(const char *ip, const char *user, const char *pass, const cha
|
|||
return NULL;
|
||||
}
|
||||
|
||||
TAOS *taos_connect_c(const char *ip, uint8_t ipLen, const char *user, uint8_t userLen,
|
||||
const char *pass, uint8_t passLen, const char *db, uint8_t dbLen, uint16_t port) {
|
||||
char ipBuf[TSDB_EP_LEN] = {0};
|
||||
char userBuf[TSDB_USER_LEN] = {0};
|
||||
char passBuf[TSDB_PASSWORD_LEN] = {0};
|
||||
char dbBuf[TSDB_DB_NAME_LEN] = {0};
|
||||
strncpy(ipBuf, ip, MIN(TSDB_EP_LEN - 1, ipLen));
|
||||
strncpy(userBuf, user, MIN(TSDB_USER_LEN - 1, userLen));
|
||||
strncpy(passBuf, pass, MIN(TSDB_PASSWORD_LEN - 1,passLen));
|
||||
strncpy(dbBuf, db, MIN(TSDB_DB_NAME_LEN - 1, dbLen));
|
||||
return taos_connect(ipBuf, userBuf, passBuf, dbBuf, port);
|
||||
TAOS *taos_connect(const char *ip, const char *user, const char *pass, const char *db, uint16_t port) {
|
||||
tscDebug("try to create a connection to %s:%u, user:%s db:%s", ip, port, user, db);
|
||||
if (user == NULL) user = TSDB_DEFAULT_USER;
|
||||
if (pass == NULL) pass = TSDB_DEFAULT_PASS;
|
||||
|
||||
return taos_connect_internal(ip, user, pass, NULL, db, port);
|
||||
}
|
||||
|
||||
TAOS *taos_connect_auth(const char *ip, const char *user, const char *auth, const char *db, uint16_t port) {
|
||||
tscDebug("try to create a connection to %s:%u by auth, user:%s db:%s", ip, port, user, db);
|
||||
if (user == NULL) user = TSDB_DEFAULT_USER;
|
||||
if (auth == NULL) return NULL;
|
||||
|
||||
return taos_connect_internal(ip, user, NULL, auth, db, port);
|
||||
}
|
||||
|
||||
TAOS *taos_connect_c(const char *ip, uint8_t ipLen, const char *user, uint8_t userLen, const char *pass,
|
||||
uint8_t passLen, const char *db, uint8_t dbLen, uint16_t port) {
|
||||
char ipBuf[TSDB_EP_LEN] = {0};
|
||||
char userBuf[TSDB_USER_LEN] = {0};
|
||||
char passBuf[TSDB_PASSWORD_LEN] = {0};
|
||||
char dbBuf[TSDB_DB_NAME_LEN] = {0};
|
||||
strncpy(ipBuf, ip, MIN(TSDB_EP_LEN - 1, ipLen));
|
||||
strncpy(userBuf, user, MIN(TSDB_USER_LEN - 1, userLen));
|
||||
strncpy(passBuf, pass, MIN(TSDB_PASSWORD_LEN - 1, passLen));
|
||||
strncpy(dbBuf, db, MIN(TSDB_DB_NAME_LEN - 1, dbLen));
|
||||
return taos_connect(ipBuf, userBuf, passBuf, dbBuf, port);
|
||||
}
|
||||
|
||||
TAOS *taos_connect_a(char *ip, char *user, char *pass, char *db, uint16_t port, void (*fp)(void *, TAOS_RES *, int),
|
||||
void *param, void **taos) {
|
||||
SSqlObj* pSql = taosConnectImpl(ip, user, pass, db, port, fp, param, taos);
|
||||
SSqlObj* pSql = taosConnectImpl(ip, user, pass, NULL, db, port, fp, param, taos);
|
||||
if (pSql == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -684,6 +684,8 @@ static void tidTagRetrieveCallback(void* param, TAOS_RES* tres, int32_t numOfRow
|
|||
freeJoinSubqueryObj(pParentSql);
|
||||
pParentSql->res.code = code;
|
||||
tscQueueAsyncRes(pParentSql);
|
||||
taosArrayDestroy(s1);
|
||||
taosArrayDestroy(s2);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1296,7 +1298,9 @@ int32_t tscHandleMasterJoinQuery(SSqlObj* pSql) {
|
|||
tscError("%p tableIndex:%d, failed to allocate join support object, abort further query", pSql, i);
|
||||
pState->numOfRemain = i;
|
||||
pSql->res.code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||
|
||||
if (0 == i) {
|
||||
taosTFree(pState);
|
||||
}
|
||||
return pSql->res.code;
|
||||
}
|
||||
|
||||
|
@ -1304,7 +1308,9 @@ int32_t tscHandleMasterJoinQuery(SSqlObj* pSql) {
|
|||
if (code != TSDB_CODE_SUCCESS) { // failed to create subquery object, quit query
|
||||
tscDestroyJoinSupporter(pSupporter);
|
||||
pSql->res.code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||
|
||||
if (0 == i) {
|
||||
taosTFree(pState);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2091,17 +2097,17 @@ void tscBuildResFromSubqueries(SSqlObj *pSql) {
|
|||
// return;
|
||||
// }
|
||||
|
||||
tscFetchDatablockFromSubquery(pSql);
|
||||
if (pRes->code != TSDB_CODE_SUCCESS) {
|
||||
return;
|
||||
}
|
||||
// tscFetchDatablockFromSubquery(pSql);
|
||||
// if (pRes->code != TSDB_CODE_SUCCESS) {
|
||||
// return;
|
||||
// }
|
||||
}
|
||||
|
||||
if (pSql->res.code == TSDB_CODE_SUCCESS) {
|
||||
(*pSql->fp)(pSql->param, pSql, pRes->numOfRows);
|
||||
} else {
|
||||
tscQueueAsyncRes(pSql);
|
||||
}
|
||||
// if (pSql->res.code == TSDB_CODE_SUCCESS) {
|
||||
// (*pSql->fp)(pSql->param, pSql, pRes->numOfRows);
|
||||
// } else {
|
||||
// tscQueueAsyncRes(pSql);
|
||||
// }
|
||||
}
|
||||
|
||||
static void transferNcharData(SSqlObj *pSql, int32_t columnIndex, TAOS_FIELD *pField) {
|
||||
|
|
|
@ -47,10 +47,8 @@ void tscCheckDiskUsage(void *UNUSED_PARAM(para), void* UNUSED_PARAM(param)) {
|
|||
taosTmrReset(tscCheckDiskUsage, 1000, NULL, tscTmr, &tscCheckDiskUsageTmr);
|
||||
}
|
||||
|
||||
int32_t tscInitRpc(const char *user, const char *secret, void** pDnodeConn) {
|
||||
int32_t tscInitRpc(const char *user, const char *secretEncrypt, void **pDnodeConn) {
|
||||
SRpcInit rpcInit;
|
||||
char secretEncrypt[32] = {0};
|
||||
taosEncryptPass((uint8_t *)secret, strlen(secret), secretEncrypt);
|
||||
|
||||
if (*pDnodeConn == NULL) {
|
||||
memset(&rpcInit, 0, sizeof(rpcInit));
|
||||
|
@ -60,11 +58,11 @@ int32_t tscInitRpc(const char *user, const char *secret, void** pDnodeConn) {
|
|||
rpcInit.cfp = tscProcessMsgFromServer;
|
||||
rpcInit.sessions = tsMaxConnections;
|
||||
rpcInit.connType = TAOS_CONN_CLIENT;
|
||||
rpcInit.user = (char*)user;
|
||||
rpcInit.user = (char *)user;
|
||||
rpcInit.idleTime = 2000;
|
||||
rpcInit.ckey = "key";
|
||||
rpcInit.spi = 1;
|
||||
rpcInit.secret = secretEncrypt;
|
||||
rpcInit.secret = (char *)secretEncrypt;
|
||||
|
||||
*pDnodeConn = rpcOpen(&rpcInit);
|
||||
if (*pDnodeConn == NULL) {
|
||||
|
|
|
@ -113,6 +113,7 @@ extern char tsInternalPass[];
|
|||
extern int32_t tsMonitorInterval;
|
||||
|
||||
// internal
|
||||
extern int32_t tsPrintAuth;
|
||||
extern int32_t tscEmbedded;
|
||||
extern char configDir[];
|
||||
extern char tsVnodeDir[];
|
||||
|
|
|
@ -146,6 +146,7 @@ char tsInternalPass[] = "secretkey";
|
|||
int32_t tsMonitorInterval = 30; // seconds
|
||||
|
||||
// internal
|
||||
int32_t tsPrintAuth = 0;
|
||||
int32_t tscEmbedded = 0;
|
||||
char configDir[TSDB_FILENAME_LEN] = {0};
|
||||
char tsVnodeDir[TSDB_FILENAME_LEN] = {0};
|
||||
|
|
|
@ -23,7 +23,9 @@
|
|||
// TODO refactor to set the tz value through parameter
|
||||
void tsSetTimeZone() {
|
||||
SGlobalCfg *cfg_timezone = taosGetConfigOption("timezone");
|
||||
uInfo("timezone is set to %s by %s", tsTimezone, tsCfgStatusStr[cfg_timezone->cfgStatus]);
|
||||
if (cfg_timezone != NULL) {
|
||||
uInfo("timezone is set to %s by %s", tsTimezone, tsCfgStatusStr[cfg_timezone->cfgStatus]);
|
||||
}
|
||||
|
||||
#ifdef WINDOWS
|
||||
char winStr[TSDB_LOCALE_LEN * 2];
|
||||
|
|
|
@ -158,7 +158,7 @@ public class TSDBStatement implements Statement {
|
|||
throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL));
|
||||
} else if (resultSetPointer == TSDBConstants.JNI_NULL_POINTER) {
|
||||
// no result set is retrieved
|
||||
this.connecter.freeResultSet(pSql);
|
||||
this.connecter.freeResultSet(pSql);
|
||||
res = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -449,7 +449,12 @@ static int32_t dnodeProcessConfigDnodeMsg(SRpcMsg *pMsg) {
|
|||
}
|
||||
|
||||
void dnodeUpdateMnodeEpSetForPeer(SRpcEpSet *pEpSet) {
|
||||
dInfo("mnode EP list for is changed, numOfEps:%d inUse:%d", pEpSet->numOfEps, pEpSet->inUse);
|
||||
if (pEpSet->numOfEps <= 0) {
|
||||
dError("mnode EP list for peer is changed, but content is invalid, discard it");
|
||||
return;
|
||||
}
|
||||
|
||||
dInfo("mnode EP list for peer is changed, numOfEps:%d inUse:%d", pEpSet->numOfEps, pEpSet->inUse);
|
||||
for (int i = 0; i < pEpSet->numOfEps; ++i) {
|
||||
pEpSet->port[i] -= TSDB_PORT_DNODEDNODE;
|
||||
dInfo("mnode index:%d %s:%u", i, pEpSet->fqdn[i], pEpSet->port[i])
|
||||
|
@ -710,10 +715,10 @@ static void dnodeSendStatusMsg(void *handle, void *tmrId) {
|
|||
pStatus->clusterCfg.statusInterval = htonl(tsStatusInterval);
|
||||
pStatus->clusterCfg.maxtablesPerVnode = htonl(tsMaxTablePerVnode);
|
||||
pStatus->clusterCfg.maxVgroupsPerDb = htonl(tsMaxVgroupsPerDb);
|
||||
strcpy(pStatus->clusterCfg.arbitrator, tsArbitrator);
|
||||
strcpy(pStatus->clusterCfg.timezone, tsTimezone);
|
||||
strcpy(pStatus->clusterCfg.locale, tsLocale);
|
||||
strcpy(pStatus->clusterCfg.charset, tsCharset);
|
||||
tstrncpy(pStatus->clusterCfg.arbitrator, tsArbitrator, TSDB_EP_LEN);
|
||||
tstrncpy(pStatus->clusterCfg.timezone, tsTimezone, 64);
|
||||
tstrncpy(pStatus->clusterCfg.locale, tsLocale, TSDB_LOCALE_LEN);
|
||||
tstrncpy(pStatus->clusterCfg.charset, tsCharset, TSDB_LOCALE_LEN);
|
||||
|
||||
vnodeBuildStatusMsg(pStatus);
|
||||
contLen = sizeof(SDMStatusMsg) + pStatus->openVnodes * sizeof(SVnodeLoad);
|
||||
|
|
|
@ -52,6 +52,8 @@ int32_t main(int32_t argc, char *argv[]) {
|
|||
} else if (strcmp(argv[i], "-k") == 0) {
|
||||
grantParseParameter();
|
||||
exit(EXIT_SUCCESS);
|
||||
} else if (strcmp(argv[i], "-A") == 0) {
|
||||
tsPrintAuth = 1;
|
||||
}
|
||||
#ifdef TAOS_MEM_CHECK
|
||||
else if (strcmp(argv[i], "--alloc-random-fail") == 0) {
|
||||
|
|
|
@ -39,6 +39,7 @@ typedef struct SShellArguments {
|
|||
char* host;
|
||||
char* password;
|
||||
char* user;
|
||||
char* auth;
|
||||
char* database;
|
||||
char* timezone;
|
||||
bool is_raw_time;
|
||||
|
|
|
@ -32,16 +32,16 @@ void insertChar(Command *cmd, char *c, int size);
|
|||
|
||||
void printHelp() {
|
||||
char indent[10] = " ";
|
||||
printf("taos shell is used to test the TDEngine database\n");
|
||||
printf("taos shell is used to test the TDengine database\n");
|
||||
|
||||
printf("%s%s\n", indent, "-h");
|
||||
printf("%s%s%s\n", indent, indent, "TDEngine server IP address to connect. The default host is localhost.");
|
||||
printf("%s%s%s\n", indent, indent, "TDengine server IP address to connect. The default host is localhost.");
|
||||
printf("%s%s\n", indent, "-p");
|
||||
printf("%s%s%s\n", indent, indent, "The password to use when connecting to the server.");
|
||||
printf("%s%s\n", indent, "-P");
|
||||
printf("%s%s%s\n", indent, indent, "The TCP/IP port number to use for the connection");
|
||||
printf("%s%s\n", indent, "-u");
|
||||
printf("%s%s%s\n", indent, indent, "The TDEngine user name to use when connecting to the server.");
|
||||
printf("%s%s%s\n", indent, indent, "The user name to use when connecting to the server.");
|
||||
printf("%s%s\n", indent, "-c");
|
||||
printf("%s%s%s\n", indent, indent, "Configuration directory.");
|
||||
printf("%s%s\n", indent, "-s");
|
||||
|
|
|
@ -38,6 +38,7 @@ SShellHistory history;
|
|||
|
||||
#define DEFAULT_MAX_BINARY_DISPLAY_WIDTH 30
|
||||
extern int32_t tsMaxBinaryDisplayWidth;
|
||||
extern TAOS *taos_connect_auth(const char *ip, const char *user, const char *auth, const char *db, uint16_t port);
|
||||
|
||||
/*
|
||||
* FUNCTION: Initialize the shell.
|
||||
|
@ -70,7 +71,13 @@ TAOS *shellInit(SShellArguments *args) {
|
|||
tsTableMetaKeepTimer = 3000;
|
||||
|
||||
// Connect to the database.
|
||||
TAOS *con = taos_connect(args->host, args->user, args->password, args->database, args->port);
|
||||
TAOS *con = NULL;
|
||||
if (args->auth == NULL) {
|
||||
con = taos_connect(args->host, args->user, args->password, args->database, args->port);
|
||||
} else {
|
||||
con = taos_connect_auth(args->host, args->user, args->auth, args->database, args->port);
|
||||
}
|
||||
|
||||
if (con == NULL) {
|
||||
printf("taos connect failed, reason: %s.\n\n", tstrerror(terrno));
|
||||
fflush(stdout);
|
||||
|
|
|
@ -33,10 +33,11 @@ const char *argp_program_bug_address = "<support@taosdata.com>";
|
|||
static char doc[] = "";
|
||||
static char args_doc[] = "";
|
||||
static struct argp_option options[] = {
|
||||
{"host", 'h', "HOST", 0, "TDEngine server IP address to connect. The default host is localhost."},
|
||||
{"host", 'h', "HOST", 0, "TDengine server IP address to connect. The default host is localhost."},
|
||||
{"password", 'p', "PASSWORD", OPTION_ARG_OPTIONAL, "The password to use when connecting to the server."},
|
||||
{"port", 'P', "PORT", 0, "The TCP/IP port number to use for the connection."},
|
||||
{"user", 'u', "USER", 0, "The TDEngine user name to use when connecting to the server."},
|
||||
{"user", 'u', "USER", 0, "The user name to use when connecting to the server."},
|
||||
{"user", 'A', "Auth", 0, "The user auth to use when connecting to the server."},
|
||||
{"config-dir", 'c', "CONFIG_DIR", 0, "Configuration directory."},
|
||||
{"commands", 's', "COMMANDS", 0, "Commands to run without enter the shell."},
|
||||
{"raw-time", 'r', 0, 0, "Output time as uint64_t."},
|
||||
|
@ -76,6 +77,9 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
|||
case 'u':
|
||||
arguments->user = arg;
|
||||
break;
|
||||
case 'A':
|
||||
arguments->auth = arg;
|
||||
break;
|
||||
case 'c':
|
||||
if (wordexp(arg, &full_path, 0) != 0) {
|
||||
fprintf(stderr, "Invalid path %s\n", arg);
|
||||
|
|
|
@ -21,16 +21,18 @@ extern char configDir[];
|
|||
|
||||
void printHelp() {
|
||||
char indent[10] = " ";
|
||||
printf("taos shell is used to test the TDEngine database\n");
|
||||
printf("taos shell is used to test the TDengine database\n");
|
||||
|
||||
printf("%s%s\n", indent, "-h");
|
||||
printf("%s%s%s\n", indent, indent, "TDEngine server IP address to connect. The default host is localhost.");
|
||||
printf("%s%s%s\n", indent, indent, "TDengine server IP address to connect. The default host is localhost.");
|
||||
printf("%s%s\n", indent, "-p");
|
||||
printf("%s%s%s\n", indent, indent, "The password to use when connecting to the server.");
|
||||
printf("%s%s\n", indent, "-P");
|
||||
printf("%s%s%s\n", indent, indent, "The TCP/IP port number to use for the connection");
|
||||
printf("%s%s\n", indent, "-u");
|
||||
printf("%s%s%s\n", indent, indent, "The TDEngine user name to use when connecting to the server.");
|
||||
printf("%s%s%s\n", indent, indent, "The user name to use when connecting to the server.");
|
||||
printf("%s%s\n", indent, "-A");
|
||||
printf("%s%s%s\n", indent, indent, "The user auth to use when connecting to the server.");
|
||||
printf("%s%s\n", indent, "-c");
|
||||
printf("%s%s%s\n", indent, indent, "Configuration directory.");
|
||||
printf("%s%s\n", indent, "-s");
|
||||
|
@ -79,6 +81,13 @@ void shellParseArgument(int argc, char *argv[], SShellArguments *arguments) {
|
|||
fprintf(stderr, "option -u requires an argument\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
} else if (strcmp(argv[i], "-A") == 0) {
|
||||
if (i < argc - 1) {
|
||||
arguments->auth = argv[++i];
|
||||
} else {
|
||||
fprintf(stderr, "option -A requires an argument\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
} else if (strcmp(argv[i], "-c") == 0) {
|
||||
if (i < argc - 1) {
|
||||
if (strlen(argv[++i]) >= TSDB_FILENAME_LEN) {
|
||||
|
|
|
@ -85,9 +85,9 @@ typedef struct DemoArguments {
|
|||
#ifdef LINUX
|
||||
/* The options we understand. */
|
||||
static struct argp_option options[] = {
|
||||
{0, 'h', "host", 0, "The host to connect to TDEngine. Default is localhost.", 0},
|
||||
{0, 'h', "host", 0, "The host to connect to TDengine. Default is localhost.", 0},
|
||||
{0, 'p', "port", 0, "The TCP/IP port number to use for the connection. Default is 0.", 1},
|
||||
{0, 'u', "user", 0, "The TDEngine user name to use when connecting to the server. Default is 'root'.", 2},
|
||||
{0, 'u', "user", 0, "The TDengine user name to use when connecting to the server. Default is 'root'.", 2},
|
||||
{0, 'P', "password", 0, "The password to use when connecting to the server. Default is 'taosdata'.", 3},
|
||||
{0, 'd', "database", 0, "Destination database. Default is 'test'.", 3},
|
||||
{0, 'm', "table_prefix", 0, "Table prefix name. Default is 't'.", 3},
|
||||
|
@ -264,11 +264,11 @@ typedef struct DemoArguments {
|
|||
void printHelp() {
|
||||
char indent[10] = " ";
|
||||
printf("%s%s\n", indent, "-h");
|
||||
printf("%s%s%s\n", indent, indent, "host, The host to connect to TDEngine. Default is localhost.");
|
||||
printf("%s%s%s\n", indent, indent, "host, The host to connect to TDengine. Default is localhost.");
|
||||
printf("%s%s\n", indent, "-p");
|
||||
printf("%s%s%s\n", indent, indent, "port, The TCP/IP port number to use for the connection. Default is 0.");
|
||||
printf("%s%s\n", indent, "-u");
|
||||
printf("%s%s%s\n", indent, indent, "user, The TDEngine user name to use when connecting to the server. Default is 'root'.");
|
||||
printf("%s%s%s\n", indent, indent, "user, The user name to use when connecting to the server. Default is 'root'.");
|
||||
printf("%s%s\n", indent, "-p");
|
||||
printf("%s%s%s\n", indent, indent, "password, The password to use when connecting to the server. Default is 'taosdata'.");
|
||||
printf("%s%s\n", indent, "-d");
|
||||
|
|
|
@ -73,9 +73,9 @@ static int32_t mnodeDbActionInsert(SSdbOper *pOper) {
|
|||
pthread_mutex_lock(&pDb->mutex);
|
||||
pDb->vgListSize = VG_LIST_SIZE;
|
||||
pDb->vgList = calloc(pDb->vgListSize, sizeof(SVgObj *));
|
||||
pDb->numOfVgroups = 0;
|
||||
pthread_mutex_unlock(&pDb->mutex);
|
||||
|
||||
pDb->numOfVgroups = 0;
|
||||
pDb->numOfTables = 0;
|
||||
pDb->numOfSuperTables = 0;
|
||||
|
||||
|
@ -927,7 +927,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SCMAlterDbMsg *pAlter) {
|
|||
|
||||
if (quorum >= 0 && quorum != pDb->cfg.quorum) {
|
||||
mDebug("db:%s, quorum:%d change to %d", pDb->name, pDb->cfg.quorum, quorum);
|
||||
newCfg.compression = quorum;
|
||||
newCfg.quorum = quorum;
|
||||
}
|
||||
|
||||
return newCfg;
|
||||
|
|
|
@ -58,7 +58,8 @@ int32_t mnodeProcessPeerReq(SMnodeMsg *pMsg) {
|
|||
rpcRsp->rsp = epSet;
|
||||
rpcRsp->len = sizeof(SRpcEpSet);
|
||||
|
||||
mDebug("%p, msg:%s in mpeer queue, will be redireced inUse:%d", pMsg->rpcMsg.ahandle, taosMsg[pMsg->rpcMsg.msgType], epSet->inUse);
|
||||
mDebug("%p, msg:%s in mpeer queue, will be redireced, numOfEps:%d inUse:%d", pMsg->rpcMsg.ahandle,
|
||||
taosMsg[pMsg->rpcMsg.msgType], epSet->numOfEps, epSet->inUse);
|
||||
for (int32_t i = 0; i < epSet->numOfEps; ++i) {
|
||||
mDebug("mnode index:%d ep:%s:%d", i, epSet->fqdn[i], htons(epSet->port[i]));
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "tglobal.h"
|
||||
#include "tgrant.h"
|
||||
#include "tdataformat.h"
|
||||
#include "tkey.h"
|
||||
#include "mnode.h"
|
||||
#include "dnode.h"
|
||||
#include "mnodeDef.h"
|
||||
|
@ -100,6 +101,32 @@ static int32_t mnodeUserActionDecode(SSdbOper *pOper) {
|
|||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
static void mnodePrintUserAuth() {
|
||||
FILE *fp = fopen("auth.txt", "w");
|
||||
if (!fp) {
|
||||
mDebug("failed to auth.txt for write");
|
||||
return;
|
||||
}
|
||||
|
||||
void * pIter = NULL;
|
||||
SUserObj *pUser = NULL;
|
||||
|
||||
while (1) {
|
||||
pIter = mnodeGetNextUser(pIter, &pUser);
|
||||
if (pUser == NULL) break;
|
||||
|
||||
char *base64 = base64_encode((const unsigned char *)pUser->pass, TSDB_KEY_LEN * 2);
|
||||
fprintf(fp, "user:%24s auth:%s\n", pUser->user, base64);
|
||||
free(base64);
|
||||
|
||||
mnodeDecUserRef(pUser);
|
||||
}
|
||||
|
||||
fflush(fp);
|
||||
sdbFreeIter(pIter);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
static int32_t mnodeUserActionRestored() {
|
||||
int32_t numOfRows = sdbGetNumOfRows(tsUserSdb);
|
||||
if (numOfRows <= 0 && dnodeIsFirstDeploy()) {
|
||||
|
@ -111,6 +138,11 @@ static int32_t mnodeUserActionRestored() {
|
|||
mnodeDecAcctRef(pAcct);
|
||||
}
|
||||
|
||||
if (tsPrintAuth != 0) {
|
||||
mInfo("print user auth, for -A parameter is set");
|
||||
mnodePrintUserAuth();
|
||||
}
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -170,6 +170,7 @@ static void taosGetSystemTimezone() {
|
|||
|
||||
fclose(f);
|
||||
|
||||
buf[sizeof(buf) - 1] = 0;
|
||||
char *lineEnd = strstr(buf, "\n");
|
||||
if (lineEnd != NULL) {
|
||||
*lineEnd = 0;
|
||||
|
|
|
@ -210,10 +210,14 @@ void httpProcessSingleSqlRetrieveCallBack(void *param, TAOS_RES *result, int num
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
// todo refactor
|
||||
if (tscResultsetFetchCompleted(result)) {
|
||||
httpDebug("context:%p, fd:%d, ip:%s, user:%s, resultset fetch completed", pContext, pContext->fd, pContext->ipstr,
|
||||
pContext->user);
|
||||
isContinue = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (isContinue) {
|
||||
// retrieve next batch of rows
|
||||
|
|
|
@ -70,14 +70,27 @@ int32_t mqttInitSystem() {
|
|||
recntStatus.port = strbetween("'1883'", "'", "'");
|
||||
}
|
||||
|
||||
topicPath = strbetween(strstr(url, strstr(_begin_hostname, ":") != NULL ? recntStatus.port : recntStatus.hostname),
|
||||
"/", "/");
|
||||
char* _topic = "+/+/+/";
|
||||
int _tpsize = strlen(topicPath) + strlen(_topic) + 1;
|
||||
recntStatus.topic = calloc(1, _tpsize);
|
||||
sprintf(recntStatus.topic, "/%s/%s", topicPath, _topic);
|
||||
recntStatus.client_id = strlen(tsMqttBrokerClientId) < 3 ? tsMqttBrokerClientId : "taos_mqtt";
|
||||
mqttConnect = NULL;
|
||||
char* portStr = recntStatus.hostname;
|
||||
if (_begin_hostname != NULL) {
|
||||
char* colonStr = strstr(_begin_hostname, ":");
|
||||
if (colonStr != NULL) {
|
||||
portStr = recntStatus.port;
|
||||
}
|
||||
}
|
||||
|
||||
char* topicStr = strstr(url, portStr);
|
||||
if (topicStr != NULL) {
|
||||
topicPath = strbetween(topicStr, "/", "/");
|
||||
char* _topic = "+/+/+/";
|
||||
int _tpsize = strlen(topicPath) + strlen(_topic) + 1;
|
||||
recntStatus.topic = calloc(1, _tpsize);
|
||||
sprintf(recntStatus.topic, "/%s/%s", topicPath, _topic);
|
||||
recntStatus.client_id = strlen(tsMqttBrokerClientId) < 3 ? tsMqttBrokerClientId : "taos_mqtt";
|
||||
mqttConnect = NULL;
|
||||
} else {
|
||||
topicPath = NULL;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ int tsdbOpenFileH(STsdbRepo *pRepo) {
|
|||
char *fname = malloc(strlen(tDataDir) + strlen(dp->d_name) + 2);
|
||||
if (fname == NULL) goto _err;
|
||||
sprintf(fname, "%s/%s", tDataDir, dp->d_name);
|
||||
remove(fname);
|
||||
(void)remove(fname);
|
||||
free(fname);
|
||||
} else if (code == REG_NOMATCH) {
|
||||
tsdbError("vgId:%d invalid file %s exists, ignore it", REPO_ID(pRepo), dp->d_name);
|
||||
|
@ -447,6 +447,8 @@ void tsdbGetFileInfoImpl(char *fname, uint32_t *magic, int32_t *size) {
|
|||
*magic = info.magic;
|
||||
*size = (int32_t)offset;
|
||||
|
||||
return;
|
||||
|
||||
_err:
|
||||
if (fd >= 0) close(fd);
|
||||
*magic = TSDB_FILE_INIT_MAGIC;
|
||||
|
|
|
@ -683,11 +683,11 @@ static int tsdbCommitToFile(STsdbRepo *pRepo, int fid, SCommitIter *iters, SRWHe
|
|||
|
||||
pthread_rwlock_wrlock(&(pFileH->fhlock));
|
||||
|
||||
rename(helperNewHeadF(pHelper)->fname, helperHeadF(pHelper)->fname);
|
||||
(void)rename(helperNewHeadF(pHelper)->fname, helperHeadF(pHelper)->fname);
|
||||
pGroup->files[TSDB_FILE_TYPE_HEAD].info = helperNewHeadF(pHelper)->info;
|
||||
|
||||
if (newLast) {
|
||||
rename(helperNewLastF(pHelper)->fname, helperLastF(pHelper)->fname);
|
||||
(void)rename(helperNewLastF(pHelper)->fname, helperLastF(pHelper)->fname);
|
||||
pGroup->files[TSDB_FILE_TYPE_LAST].info = helperNewLastF(pHelper)->info;
|
||||
} else {
|
||||
pGroup->files[TSDB_FILE_TYPE_LAST].info = helperLastF(pHelper)->info;
|
||||
|
|
|
@ -351,6 +351,8 @@ void tsdbGetStoreInfo(char *fname, uint32_t *magic, int32_t *size) {
|
|||
*magic = info.magic;
|
||||
*size = (int32_t)offset;
|
||||
|
||||
return;
|
||||
|
||||
_err:
|
||||
if (fd >= 0) close(fd);
|
||||
*magic = TD_KVSTORE_INIT_MAGIC;
|
||||
|
|
|
@ -371,7 +371,7 @@ SOCKET taosOpenTcpServerSocket(uint32_t ip, uint16_t port) {
|
|||
serverAdd.sin_addr.s_addr = ip;
|
||||
serverAdd.sin_port = (uint16_t)htons(port);
|
||||
|
||||
if ((sockFd = (int)socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
|
||||
if ((sockFd = (int)socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 2) {
|
||||
uError("failed to open TCP socket: %d (%s)", errno, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ SOCKET taosOpenTcpServerSocket(uint32_t ip, uint16_t port) {
|
|||
uError("setsockopt SO_REUSEADDR failed: %d (%s)", errno, strerror(errno));
|
||||
taosCloseSocket(sockFd);
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
|
||||
/* bind socket to server address */
|
||||
if (bind(sockFd, (struct sockaddr *)&serverAdd, sizeof(serverAdd)) < 0) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
char version[12] = "2.0.0.6";
|
||||
char version[12] = "2.0.1.0";
|
||||
char compatible_version[12] = "2.0.0.0";
|
||||
char gitinfo[48] = "e9a20fafbe9e3b0b12cbdf55604163b4b9a41b41";
|
||||
char gitinfoOfInternal[48] = "dd679db0b9edeedad68574c1e031544711a9831f";
|
||||
char buildinfo[64] = "Built by at 2020-08-12 07:59";
|
||||
char gitinfo[48] = "7ac6c2b8de3cd66e180132fc1cf77715237308a1";
|
||||
char gitinfoOfInternal[48] = "e1e64838ece2b6dbe964ec3a39953455f354d930";
|
||||
char buildinfo[64] = "Built by root at 2020-08-17 11:13";
|
||||
|
||||
void libtaos_2_0_0_6_Linux_x64() {};
|
||||
void libtaos_2_0_1_0_Linux_x64() {};
|
||||
|
|
|
@ -8,4 +8,3 @@ select * from devices where devgroup='60';
|
|||
select * from devices where devgroup='70';
|
||||
select * from devices where devgroup='80';
|
||||
select * from devices where devgroup='90';
|
||||
|
||||
|
|
|
@ -58,4 +58,3 @@ select spread(temperature) from devices where devgroup=~/[1-7][0-9]/;
|
|||
select spread(temperature) from devices where devgroup=~/[1-8][0-9]/;
|
||||
select spread(temperature) from devices where devgroup=~/[1-9][0-9]/;
|
||||
select spread(temperature) from devices;
|
||||
|
||||
|
|
|
@ -8,4 +8,3 @@ select count(temperature), sum(temperature), mean(temperature) from devices wher
|
|||
select count(temperature), sum(temperature), mean(temperature) from devices where devgroup=~/[1-8][0-9]/ group by devgroup;
|
||||
select count(temperature), sum(temperature), mean(temperature) from devices where devgroup=~/[1-9][0-9]/ group by devgroup;
|
||||
select count(temperature), sum(temperature), mean(temperature) from devices group by devgroup;
|
||||
|
||||
|
|
|
@ -8,4 +8,3 @@ select count(temperature), sum(temperature), mean(temperature) from devices wher
|
|||
select count(temperature), sum(temperature), mean(temperature) from devices where devgroup=~/[1-8][0-9]/ group by time(1m);
|
||||
select count(temperature), sum(temperature), mean(temperature) from devices where devgroup=~/[1-9][0-9]/ group by time(1m);
|
||||
select count(temperature), sum(temperature), mean(temperature) from devices group by time(1m);
|
||||
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
#!/bin/bash
|
||||
|
||||
NUM_LOOP=5
|
||||
|
||||
function printTo {
|
||||
if $verbose ; then
|
||||
echo $1
|
||||
fi
|
||||
}
|
||||
|
||||
INFLUXDBTESTQ1OUT=influxdbTestQ1.out
|
||||
|
||||
function runTest {
|
||||
totalG0=0
|
||||
totalG10=0
|
||||
totalG20=0
|
||||
totalG30=0
|
||||
totalG40=0
|
||||
totalG50=0
|
||||
totalG60=0
|
||||
totalG70=0
|
||||
totalG80=0
|
||||
totalG90=0
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
printTo "loop i:$i, $INFLUXDBTEST_DIR/infludbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q1.txt"
|
||||
$INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q1.txt 2>&1 \
|
||||
| tee $INFLUXDBTESTQ1OUT
|
||||
G0=`grep "devgroup='0'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG0=`echo "scale=4; $totalG0 + $G0" | bc`
|
||||
G10=`grep "devgroup='10'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG10=`echo "scale=4; $totalG10 + $G10" | bc`
|
||||
G20=`grep "devgroup='20'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG20=`echo "scale=4; $totalG20 + $G20" | bc`
|
||||
G30=`grep "devgroup='30'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG30=`echo "scale=4; $totalG30 + $G30" | bc`
|
||||
G40=`grep "devgroup='40'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG40=`echo "scale=4; $totalG40 + $G40" | bc`
|
||||
G50=`grep "devgroup='50'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG50=`echo "scale=4; $totalG50 + $G50" | bc`
|
||||
G60=`grep "devgroup='60'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG60=`echo "scale=4; $totalG60 + $G60" | bc`
|
||||
G70=`grep "devgroup='70'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG70=`echo "scale=4; $totalG70 + $G70" | bc`
|
||||
G80=`grep "devgroup='80'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG80=`echo "scale=4; $totalG80 + $G80" | bc`
|
||||
G90=`grep "devgroup='90'" $INFLUXDBTESTQ1OUT| awk '{print $5}'`
|
||||
totalG90=`echo "scale=4; $totalG90 + $G90" | bc`
|
||||
done
|
||||
avgG0=`echo "scale=4; x = $totalG0 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG10=`echo "scale=4; x = $totalG10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG20=`echo "scale=4; x = $totalG20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG30=`echo "scale=4; x = $totalG30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG40=`echo "scale=4; x = $totalG40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG50=`echo "scale=4; x = $totalG50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG60=`echo "scale=4; x = $totalG60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG70=`echo "scale=4; x = $totalG70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG80=`echo "scale=4; x = $totalG80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG90=`echo "scale=4; x = $totalG90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
echo "Latency, G-0, G-10, G-20, G-30, G-40, G-50, G-60, G-70, G-80, G-90"
|
||||
echo "InfluxDB, $avgG0, $avgG10, $avgG20, $avgG30, $avgG40, $avgG50, $avgG60, $avgG70, $avgG80, $avgG90"
|
||||
}
|
||||
|
||||
################ Main ################
|
||||
|
||||
master=false
|
||||
develop=true
|
||||
verbose=false
|
||||
|
||||
clients=1
|
||||
|
||||
while : ; do
|
||||
case $1 in
|
||||
-v)
|
||||
verbose=true
|
||||
shift ;;
|
||||
|
||||
-c)
|
||||
clients=$2
|
||||
shift 2;;
|
||||
|
||||
-n)
|
||||
NUM_LOOP=$2
|
||||
shift 2;;
|
||||
|
||||
*)
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
WORK_DIR=/mnt/root/TDengine
|
||||
INFLUXDBTEST_DIR=$WORK_DIR/tests/comparisonTest/influxdb
|
||||
|
||||
runTest
|
||||
|
||||
printTo "Test done!"
|
|
@ -0,0 +1,318 @@
|
|||
#!/bin/bash
|
||||
|
||||
NUM_LOOP=5
|
||||
|
||||
function printTo {
|
||||
if $verbose ; then
|
||||
echo $1
|
||||
fi
|
||||
}
|
||||
|
||||
INFLUXDBTESTQ2OUT=influxdbTestQ2.out
|
||||
|
||||
function runTest {
|
||||
totalCount10=0
|
||||
totalCount20=0
|
||||
totalCount30=0
|
||||
totalCount40=0
|
||||
totalCount50=0
|
||||
totalCount60=0
|
||||
totalCount70=0
|
||||
totalCount80=0
|
||||
totalCount90=0
|
||||
totalCount100=0
|
||||
|
||||
totalMean10=0
|
||||
totalMean20=0
|
||||
totalMean30=0
|
||||
totalMean40=0
|
||||
totalMean50=0
|
||||
totalMean60=0
|
||||
totalMean70=0
|
||||
totalMean80=0
|
||||
totalMean90=0
|
||||
totalMean100=0
|
||||
|
||||
totalSum10=0
|
||||
totalSum20=0
|
||||
totalSum30=0
|
||||
totalSum40=0
|
||||
totalSum50=0
|
||||
totalSum60=0
|
||||
totalSum70=0
|
||||
totalSum80=0
|
||||
totalSum90=0
|
||||
totalSum100=0
|
||||
|
||||
totalMax10=0
|
||||
totalMax20=0
|
||||
totalMax30=0
|
||||
totalMax40=0
|
||||
totalMax50=0
|
||||
totalMax60=0
|
||||
totalMax70=0
|
||||
totalMax80=0
|
||||
totalMax90=0
|
||||
totalMax100=0
|
||||
|
||||
totalMin10=0
|
||||
totalMin20=0
|
||||
totalMin30=0
|
||||
totalMin40=0
|
||||
totalMin50=0
|
||||
totalMin60=0
|
||||
totalMin70=0
|
||||
totalMin80=0
|
||||
totalMin90=0
|
||||
totalMin100=0
|
||||
|
||||
totalSpread10=0
|
||||
totalSpread20=0
|
||||
totalSpread30=0
|
||||
totalSpread40=0
|
||||
totalSpread50=0
|
||||
totalSpread60=0
|
||||
totalSpread70=0
|
||||
totalSpread80=0
|
||||
totalSpread90=0
|
||||
totalSpread100=0
|
||||
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
printTo "loop i:$i, $INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q2.txt"
|
||||
$INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q2.txt 2>&1 \
|
||||
| tee $INFLUXDBTESTQ2OUT
|
||||
|
||||
Count10=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-1\]" | awk '{print $5}'`
|
||||
totalCount10=`echo "scale=4; $totalCount10 + $Count10" | bc`
|
||||
Count20=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-2\]" | awk '{print $5}'`
|
||||
totalCount20=`echo "scale=4; $totalCount20 + $Count20" | bc`
|
||||
Count30=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-3\]" | awk '{print $5}'`
|
||||
totalCount30=`echo "scale=4; $totalCount30 + $Count30" | bc`
|
||||
Count40=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-4\]" | awk '{print $5}'`
|
||||
totalCount40=`echo "scale=4; $totalCount40 + $Count40" | bc`
|
||||
Count50=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-5\]" | awk '{print $5}'`
|
||||
totalCount50=`echo "scale=4; $totalCount50 + $Count50" | bc`
|
||||
Count60=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-6\]" | awk '{print $5}'`
|
||||
totalCount60=`echo "scale=4; $totalCount60 + $Count60" | bc`
|
||||
Count70=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-7\]" | awk '{print $5}'`
|
||||
totalCount70=`echo "scale=4; $totalCount70 + $Count70" | bc`
|
||||
Count80=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-8\]" | awk '{print $5}'`
|
||||
totalCount80=`echo "scale=4; $totalCount80 + $Count80" | bc`
|
||||
Count90=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devgroup=~\/\[1-9\]" | awk '{print $5}'`
|
||||
totalCount90=`echo "scale=4; $totalCount90 + $Count90" | bc`
|
||||
Count100=`cat $INFLUXDBTESTQ2OUT | grep count | grep "devices;" | awk '{print $5}'`
|
||||
totalCount100=`echo "scale=4; $totalCount100 + $Count100" | bc`
|
||||
|
||||
Mean10=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-1\]" | awk '{print $5}'`
|
||||
totalMean10=`echo "scale=4; $totalMean10 + $Mean10" | bc`
|
||||
Mean20=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-2\]" | awk '{print $5}'`
|
||||
totalMean20=`echo "scale=4; $totalMean20 + $Mean20" | bc`
|
||||
Mean30=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-3\]" | awk '{print $5}'`
|
||||
totalMean30=`echo "scale=4; $totalMean30 + $Mean30" | bc`
|
||||
Mean40=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-4\]" | awk '{print $5}'`
|
||||
totalMean40=`echo "scale=4; $totalMean40 + $Mean40" | bc`
|
||||
Mean50=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-5\]" | awk '{print $5}'`
|
||||
totalMean50=`echo "scale=4; $totalMean50 + $Mean50" | bc`
|
||||
Mean60=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-6\]" | awk '{print $5}'`
|
||||
totalMean60=`echo "scale=4; $totalMean60 + $Mean60" | bc`
|
||||
Mean70=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-7\]" | awk '{print $5}'`
|
||||
totalMean70=`echo "scale=4; $totalMean70 + $Mean70" | bc`
|
||||
Mean80=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-8\]" | awk '{print $5}'`
|
||||
totalMean80=`echo "scale=4; $totalMean80 + $Mean80" | bc`
|
||||
Mean90=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devgroup=~\/\[1-9\]" | awk '{print $5}'`
|
||||
totalMean90=`echo "scale=4; $totalMean90 + $Mean90" | bc`
|
||||
Mean100=`cat $INFLUXDBTESTQ2OUT | grep mean | grep "devices;" | awk '{print $5}'`
|
||||
totalMean100=`echo "scale=4; $totalMean100 + $Mean100" | bc`
|
||||
|
||||
Sum10=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-1\]" | awk '{print $5}'`
|
||||
totalSum10=`echo "scale=4; $totalSum10 + $Sum10" | bc`
|
||||
Sum20=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-2\]" | awk '{print $5}'`
|
||||
totalSum20=`echo "scale=4; $totalSum20 + $Sum20" | bc`
|
||||
Sum30=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-3\]" | awk '{print $5}'`
|
||||
totalSum30=`echo "scale=4; $totalSum30 + $Sum30" | bc`
|
||||
Sum40=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-4\]" | awk '{print $5}'`
|
||||
totalSum40=`echo "scale=4; $totalSum40 + $Sum40" | bc`
|
||||
Sum50=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-5\]" | awk '{print $5}'`
|
||||
totalSum50=`echo "scale=4; $totalSum50 + $Sum50" | bc`
|
||||
Sum60=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-6\]" | awk '{print $5}'`
|
||||
totalSum60=`echo "scale=4; $totalSum60 + $Sum60" | bc`
|
||||
Sum70=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-7\]" | awk '{print $5}'`
|
||||
totalSum70=`echo "scale=4; $totalSum70 + $Sum70" | bc`
|
||||
Sum80=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-8\]" | awk '{print $5}'`
|
||||
totalSum80=`echo "scale=4; $totalSum80 + $Sum80" | bc`
|
||||
Sum90=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devgroup=~\/\[1-9\]" | awk '{print $5}'`
|
||||
totalSum90=`echo "scale=4; $totalSum90 + $Sum90" | bc`
|
||||
Sum100=`cat $INFLUXDBTESTQ2OUT | grep sum | grep "devices;" | awk '{print $5}'`
|
||||
totalSum100=`echo "scale=4; $totalSum100 + $Sum100" | bc`
|
||||
|
||||
Max10=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-1\]" | awk '{print $5}'`
|
||||
totalMax10=`echo "scale=4; $totalMax10 + $Max10" | bc`
|
||||
Max20=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-2\]" | awk '{print $5}'`
|
||||
totalMax20=`echo "scale=4; $totalMax20 + $Max20" | bc`
|
||||
Max30=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-3\]" | awk '{print $5}'`
|
||||
totalMax30=`echo "scale=4; $totalMax30 + $Max30" | bc`
|
||||
Max40=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-4\]" | awk '{print $5}'`
|
||||
totalMax40=`echo "scale=4; $totalMax40 + $Max40" | bc`
|
||||
Max50=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-5\]" | awk '{print $5}'`
|
||||
totalMax50=`echo "scale=4; $totalMax50 + $Max50" | bc`
|
||||
Max60=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-6\]" | awk '{print $5}'`
|
||||
totalMax60=`echo "scale=4; $totalMax60 + $Max60" | bc`
|
||||
Max70=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-7\]" | awk '{print $5}'`
|
||||
totalMax70=`echo "scale=4; $totalMax70 + $Max70" | bc`
|
||||
Max80=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-8\]" | awk '{print $5}'`
|
||||
totalMax80=`echo "scale=4; $totalMax80 + $Max80" | bc`
|
||||
Max90=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devgroup=~\/\[1-9\]" | awk '{print $5}'`
|
||||
totalMax90=`echo "scale=4; $totalMax90 + $Max90" | bc`
|
||||
Max100=`cat $INFLUXDBTESTQ2OUT | grep max | grep "devices;" | awk '{print $5}'`
|
||||
totalMax100=`echo "scale=4; $totalMax100 + $Max100" | bc`
|
||||
|
||||
Min10=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-1\]" | awk '{print $5}'`
|
||||
totalMin10=`echo "scale=4; $totalMin10 + $Min10" | bc`
|
||||
Min20=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-2\]" | awk '{print $5}'`
|
||||
totalMin20=`echo "scale=4; $totalMin20 + $Min20" | bc`
|
||||
Min30=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-3\]" | awk '{print $5}'`
|
||||
totalMin30=`echo "scale=4; $totalMin30 + $Min30" | bc`
|
||||
Min40=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-4\]" | awk '{print $5}'`
|
||||
totalMin40=`echo "scale=4; $totalMin40 + $Min40" | bc`
|
||||
Min50=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-5\]" | awk '{print $5}'`
|
||||
totalMin50=`echo "scale=4; $totalMin50 + $Min50" | bc`
|
||||
Min60=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-6\]" | awk '{print $5}'`
|
||||
totalMin60=`echo "scale=4; $totalMin60 + $Min60" | bc`
|
||||
Min70=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-7\]" | awk '{print $5}'`
|
||||
totalMin70=`echo "scale=4; $totalMin70 + $Min70" | bc`
|
||||
Min80=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-8\]" | awk '{print $5}'`
|
||||
totalMin80=`echo "scale=4; $totalMin80 + $Min80" | bc`
|
||||
Min90=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devgroup=~\/\[1-9\]" | awk '{print $5}'`
|
||||
totalMin90=`echo "scale=4; $totalMin90 + $Min90" | bc`
|
||||
Min100=`cat $INFLUXDBTESTQ2OUT | grep min | grep "devices;" | awk '{print $5}'`
|
||||
totalMin100=`echo "scale=4; $totalMin100 + $Min100" | bc`
|
||||
|
||||
Spread10=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-1\]" | awk '{print $5}'`
|
||||
totalSpread10=`echo "scale=4; $totalSpread10 + $Spread10" | bc`
|
||||
Spread20=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-2\]" | awk '{print $5}'`
|
||||
totalSpread20=`echo "scale=4; $totalSpread20 + $Spread20" | bc`
|
||||
Spread30=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-3\]" | awk '{print $5}'`
|
||||
totalSpread30=`echo "scale=4; $totalSpread30 + $Spread30" | bc`
|
||||
Spread40=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-4\]" | awk '{print $5}'`
|
||||
totalSpread40=`echo "scale=4; $totalSpread40 + $Spread40" | bc`
|
||||
Spread50=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-5\]" | awk '{print $5}'`
|
||||
totalSpread50=`echo "scale=4; $totalSpread50 + $Spread50" | bc`
|
||||
Spread60=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-6\]" | awk '{print $5}'`
|
||||
totalSpread60=`echo "scale=4; $totalSpread60 + $Spread60" | bc`
|
||||
Spread70=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-7\]" | awk '{print $5}'`
|
||||
totalSpread70=`echo "scale=4; $totalSpread70 + $Spread70" | bc`
|
||||
Spread80=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-8\]" | awk '{print $5}'`
|
||||
totalSpread80=`echo "scale=4; $totalSpread80 + $Spread80" | bc`
|
||||
Spread90=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devgroup=~\/\[1-9\]" | awk '{print $5}'`
|
||||
totalSpread90=`echo "scale=4; $totalSpread90 + $Spread90" | bc`
|
||||
Spread100=`cat $INFLUXDBTESTQ2OUT | grep spread | grep "devices;" | awk '{print $5}'`
|
||||
totalSpread100=`echo "scale=4; $totalSpread100 + $Spread100" | bc`
|
||||
|
||||
done
|
||||
avgCount10=`echo "scale=4; x = $totalCount10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount20=`echo "scale=4; x = $totalCount20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount30=`echo "scale=4; x = $totalCount30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount40=`echo "scale=4; x = $totalCount40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount50=`echo "scale=4; x = $totalCount50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount60=`echo "scale=4; x = $totalCount60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount70=`echo "scale=4; x = $totalCount70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount80=`echo "scale=4; x = $totalCount80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount90=`echo "scale=4; x = $totalCount90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgCount100=`echo "scale=4; x = $totalCount100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
|
||||
avgMean10=`echo "scale=4; x = $totalMean10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean20=`echo "scale=4; x = $totalMean20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean30=`echo "scale=4; x = $totalMean30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean40=`echo "scale=4; x = $totalMean40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean50=`echo "scale=4; x = $totalMean50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean60=`echo "scale=4; x = $totalMean60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean70=`echo "scale=4; x = $totalMean70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean80=`echo "scale=4; x = $totalMean80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean90=`echo "scale=4; x = $totalMean90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMean100=`echo "scale=4; x = $totalMean100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
|
||||
avgSum10=`echo "scale=4; x = $totalSum10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum20=`echo "scale=4; x = $totalSum20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum30=`echo "scale=4; x = $totalSum30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum40=`echo "scale=4; x = $totalSum40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum50=`echo "scale=4; x = $totalSum50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum60=`echo "scale=4; x = $totalSum60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum70=`echo "scale=4; x = $totalSum70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum80=`echo "scale=4; x = $totalSum80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum90=`echo "scale=4; x = $totalSum90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSum100=`echo "scale=4; x = $totalSum100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
|
||||
avgMax10=`echo "scale=4; x = $totalMax10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax20=`echo "scale=4; x = $totalMax20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax30=`echo "scale=4; x = $totalMax30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax40=`echo "scale=4; x = $totalMax40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax50=`echo "scale=4; x = $totalMax50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax60=`echo "scale=4; x = $totalMax60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax70=`echo "scale=4; x = $totalMax70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax80=`echo "scale=4; x = $totalMax80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax90=`echo "scale=4; x = $totalMax90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMax100=`echo "scale=4; x = $totalMax100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
|
||||
avgMin10=`echo "scale=4; x = $totalMin10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin20=`echo "scale=4; x = $totalMin20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin30=`echo "scale=4; x = $totalMin30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin40=`echo "scale=4; x = $totalMin40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin50=`echo "scale=4; x = $totalMin50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin60=`echo "scale=4; x = $totalMin60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin70=`echo "scale=4; x = $totalMin70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin80=`echo "scale=4; x = $totalMin80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin90=`echo "scale=4; x = $totalMin90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgMin100=`echo "scale=4; x = $totalMin100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
|
||||
avgSpread10=`echo "scale=4; x = $totalSpread10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread20=`echo "scale=4; x = $totalSpread20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread30=`echo "scale=4; x = $totalSpread30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread40=`echo "scale=4; x = $totalSpread40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread50=`echo "scale=4; x = $totalSpread50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread60=`echo "scale=4; x = $totalSpread60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread70=`echo "scale=4; x = $totalSpread70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread80=`echo "scale=4; x = $totalSpread80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread90=`echo "scale=4; x = $totalSpread90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgSpread100=`echo "scale=4; x = $totalSpread100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
|
||||
echo "Latency, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100%"
|
||||
echo "Count, $avgCount10, $avgCount20, $avgCount30, $avgCount40, $avgCount50, $avgCount60, $avgCount70, $avgCount80, $avgCount90, $avgCount100"
|
||||
echo "Mean, $avgMean10, $avgMean20, $avgMean30, $avgMean40, $avgMean50, $avgMean60, $avgMean70, $avgMean80, $avgMean90, $avgMean100"
|
||||
echo "Sum, $avgSum10, $avgSum20, $avgSum30, $avgSum40, $avgSum50, $avgSum60, $avgSum70, $avgSum80, $avgSum90, $avgSum100"
|
||||
echo "Max, $avgMax10, $avgMax20, $avgMax30, $avgMax40, $avgMax50, $avgMax60, $avgMax70, $avgMax80, $avgMax90, $avgMax100"
|
||||
echo "Min, $avgMin10, $avgMin20, $avgMin30, $avgMin40, $avgMin50, $avgMin60, $avgMin70, $avgMin80, $avgMin90, $avgMin100"
|
||||
echo "Spread, $avgSpread10, $avgSpread20, $avgSpread30, $avgSpread40, $avgSpread50, $avgSpread60, $avgSpread70, $avgSpread80, $avgSpread90, $avgSpread100"
|
||||
}
|
||||
|
||||
################ Main ################
|
||||
|
||||
verbose=false
|
||||
|
||||
for arg in "$@"
|
||||
do
|
||||
case $arg in
|
||||
-v)
|
||||
verbose=true
|
||||
shift ;;
|
||||
|
||||
-c)
|
||||
clients=$2
|
||||
shift 2;;
|
||||
|
||||
-n)
|
||||
NUM_LOOP=$2
|
||||
shift 2;;
|
||||
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
WORK_DIR=/mnt/root/TDengine
|
||||
INFLUXDBTEST_DIR=$WORK_DIR/tests/comparisonTest/influxdb
|
||||
|
||||
runTest
|
||||
|
||||
printTo "Test done!"
|
|
@ -0,0 +1,94 @@
|
|||
#!/bin/bash
|
||||
|
||||
NUM_LOOP=5
|
||||
|
||||
function printTo {
|
||||
if $verbose ; then
|
||||
echo $1
|
||||
fi
|
||||
}
|
||||
|
||||
INFLUXDBTESTQ3OUT=opentsdbTestQ3.out
|
||||
|
||||
function runTest {
|
||||
totalG10=0
|
||||
totalG20=0
|
||||
totalG30=0
|
||||
totalG40=0
|
||||
totalG50=0
|
||||
totalG60=0
|
||||
totalG70=0
|
||||
totalG80=0
|
||||
totalG90=0
|
||||
totalG100=0
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
printTo "loop i:$i, $INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q3.txt"
|
||||
$INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q3.txt 2>&1 \
|
||||
| tee $INFLUXDBTESTQ3OUT
|
||||
G10=`grep -w "devgroup=~\/\[1-1\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG10=`echo "scale=4; $totalG10 + $G10" | bc`
|
||||
G20=`grep -w "devgroup=~\/\[1-2\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG20=`echo "scale=4; $totalG20 + $G20" | bc`
|
||||
G30=`grep -w "devgroup=~\/\[1-3\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG30=`echo "scale=4; $totalG30 + $G30" | bc`
|
||||
G40=`grep -w "devgroup=~\/\[1-4\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG40=`echo "scale=4; $totalG40 + $G40" | bc`
|
||||
G50=`grep -w "devgroup=~\/\[1-5\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG50=`echo "scale=4; $totalG50 + $G50" | bc`
|
||||
G60=`grep -w "devgroup=~\/\[1-6\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG60=`echo "scale=4; $totalG60 + $G60" | bc`
|
||||
G70=`grep -w "devgroup=~\/\[1-7\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG70=`echo "scale=4; $totalG70 + $G70" | bc`
|
||||
G80=`grep -w "devgroup=~\/\[1-8\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG80=`echo "scale=4; $totalG80 + $G80" | bc`
|
||||
G90=`grep -w "devgroup=~\/\[1-9\]" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG90=`echo "scale=4; $totalG90 + $G90" | bc`
|
||||
G100=`grep -w "devices group by devgroup;" $INFLUXDBTESTQ3OUT| awk '{print $5}'`
|
||||
totalG100=`echo "scale=4; $totalG100 + $G100" | bc`
|
||||
done
|
||||
avgG10=`echo "scale=4; x = $totalG10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG20=`echo "scale=4; x = $totalG20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG30=`echo "scale=4; x = $totalG30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG40=`echo "scale=4; x = $totalG40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG50=`echo "scale=4; x = $totalG50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG60=`echo "scale=4; x = $totalG60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG70=`echo "scale=4; x = $totalG70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG80=`echo "scale=4; x = $totalG80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG90=`echo "scale=4; x = $totalG90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG100=`echo "scale=4; x = $totalG100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
echo "Latency, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100%"
|
||||
echo "InfluxDB, $avgG10, $avgG20, $avgG30, $avgG40, $avgG50, $avgG60, $avgG70, $avgG80, $avgG90, $avgG100"
|
||||
}
|
||||
|
||||
################ Main ################
|
||||
|
||||
verbose=false
|
||||
|
||||
for arg in "$@"
|
||||
do
|
||||
case $arg in
|
||||
-v)
|
||||
verbose=true
|
||||
shift ;;
|
||||
|
||||
-c)
|
||||
clients=$2
|
||||
shift 2;;
|
||||
|
||||
-n)
|
||||
NUM_LOOP=$2
|
||||
shift 2;;
|
||||
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
WORK_DIR=/mnt/root/TDengine
|
||||
INFLUXDBTEST_DIR=$WORK_DIR/tests/comparisonTest/influxdb
|
||||
|
||||
runTest
|
||||
|
||||
printTo "Test done!"
|
|
@ -0,0 +1,101 @@
|
|||
#!/bin/bash -x
|
||||
|
||||
DATA_DIR=/mnt/root/testdata
|
||||
NUM_LOOP=5
|
||||
|
||||
function printTo {
|
||||
if $verbose ; then
|
||||
echo $1
|
||||
fi
|
||||
}
|
||||
|
||||
INFLUXDBTESTQ4OUT=influxdbTestQ4.out
|
||||
|
||||
function runTest {
|
||||
totalG10=0
|
||||
totalG20=0
|
||||
totalG30=0
|
||||
totalG40=0
|
||||
totalG50=0
|
||||
totalG60=0
|
||||
totalG70=0
|
||||
totalG80=0
|
||||
totalG90=0
|
||||
totalG100=0
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
printTo "loop i:$i, $INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q4.txt"
|
||||
|
||||
$INFLUXDBTEST_DIR/influxdbTest \
|
||||
-sql $INFLUXDBTEST_DIR/q4.txt 2>&1 |
|
||||
tee $INFLUXDBTESTQ4OUT
|
||||
G10=`grep -w "devgroup=~\/\[1-1\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG10=`echo "scale=4; $totalG10 + $G10" | bc`
|
||||
G20=`grep -w "devgroup=~\/\[1-2\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG20=`echo "scale=4; $totalG20 + $G20" | bc`
|
||||
G30=`grep -w "devgroup=~\/\[1-3\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG30=`echo "scale=4; $totalG30 + $G30" | bc`
|
||||
G40=`grep -w "devgroup=~\/\[1-4\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG40=`echo "scale=4; $totalG40 + $G40" | bc`
|
||||
G50=`grep -w "devgroup=~\/\[1-5\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG50=`echo "scale=4; $totalG50 + $G50" | bc`
|
||||
G60=`grep -w "devgroup=~\/\[1-6\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG60=`echo "scale=4; $totalG60 + $G60" | bc`
|
||||
G70=`grep -w "devgroup=~\/\[1-7\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG70=`echo "scale=4; $totalG70 + $G70" | bc`
|
||||
G80=`grep -w "devgroup=~\/\[1-8\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG80=`echo "scale=4; $totalG80 + $G80" | bc`
|
||||
G90=`grep -w "devgroup=~\/\[1-9\]" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG90=`echo "scale=4; $totalG90 + $G90" | bc`
|
||||
G100=`grep -w "devices group by time" $INFLUXDBTESTQ4OUT| awk '{print $5}'`
|
||||
totalG100=`echo "scale=4; $totalG100 + $G100" | bc`
|
||||
done
|
||||
avgG10=`echo "scale=4; x = $totalG10 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG20=`echo "scale=4; x = $totalG20 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG30=`echo "scale=4; x = $totalG30 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG40=`echo "scale=4; x = $totalG40 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG50=`echo "scale=4; x = $totalG50 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG60=`echo "scale=4; x = $totalG60 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG70=`echo "scale=4; x = $totalG70 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG80=`echo "scale=4; x = $totalG80 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG90=`echo "scale=4; x = $totalG90 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
avgG100=`echo "scale=4; x = $totalG100 / $NUM_LOOP; if(x<1) print 0; x" | bc`
|
||||
echo "Latency, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100%"
|
||||
echo "InfluxDB, $avgG10, $avgG20, $avgG30, $avgG40, $avgG50, $avgG60, $avgG70, $avgG80, $avgG90, $avgG100"
|
||||
}
|
||||
|
||||
################ Main ################
|
||||
|
||||
verbose=false
|
||||
regeneratedata=false
|
||||
|
||||
for arg in "$@"
|
||||
do
|
||||
case $arg in
|
||||
-v)
|
||||
verbose=true
|
||||
shift ;;
|
||||
|
||||
-c)
|
||||
clients=$2
|
||||
shift 2;;
|
||||
|
||||
-r)
|
||||
regeneratedata=true
|
||||
;;
|
||||
|
||||
-n)
|
||||
NUM_LOOP=$2
|
||||
shift 2;;
|
||||
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
WORK_DIR=/mnt/root/TDengine
|
||||
INFLUXDBTEST_DIR=$WORK_DIR/tests/comparisonTest/influxdb
|
||||
|
||||
runTest
|
||||
|
||||
printTo "Test done!"
|
|
@ -21,17 +21,16 @@ function runTest {
|
|||
done
|
||||
done
|
||||
|
||||
for r in ${rowsPerRequest[@]}; do
|
||||
for r in ${!rowsPerRequest[@]}; do
|
||||
if [ "$r" == "1" ] || [ "$r" == "100" ] || [ "$r" == "1000" ]; then
|
||||
NUM_OF_FILES=$clients
|
||||
else
|
||||
NUM_OF_FILES=100
|
||||
fi
|
||||
|
||||
printf "$r, "
|
||||
for c in `seq 1 $clients`; do
|
||||
totalRPR=0
|
||||
OUTPUT_FILE=influxdbTestWrite-RPR$r-clients$c.out
|
||||
OUTPUT_FILE=influxdbTestWrite-RPR${rowsPerRequest[$r]}-clients$c.out
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
printTo "loop i:$i, $INF_TEST_DIR/influxdbTest \
|
||||
-dataDir $DATA_DIR \
|
||||
|
@ -43,7 +42,7 @@ function runTest {
|
|||
-numOfFiles $NUM_OF_FILES \
|
||||
-writeClients $c \
|
||||
-rowsPerRequest $r 2>&1 \
|
||||
> $OUTPUT_FILE
|
||||
| tee $OUTPUT_FILE
|
||||
RPR=`cat $OUTPUT_FILE | grep speed | awk '{print $(NF-1)}'`
|
||||
totalRPR=`echo "scale=4; $totalRPR + $RPR" | bc`
|
||||
printTo "rows:$r, clients:$c, i:$i RPR:$RPR"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
DATA_DIR=/mnt/root/testdata
|
||||
NUM_LOOP=1
|
||||
NUM_LOOP=5
|
||||
NUM_OF_FILES=100
|
||||
|
||||
rowsPerRequest=(1 100 500 1000 2000)
|
||||
|
@ -13,6 +13,42 @@ function printTo {
|
|||
}
|
||||
|
||||
function runTest {
|
||||
declare -A avgRPR
|
||||
|
||||
for r in ${!rowsPerRequest[@]}; do
|
||||
for c in `seq 1 $clients`; do
|
||||
avgRPR[$r,$c]=0
|
||||
done
|
||||
done
|
||||
|
||||
for r in ${!rowsPerRequest[@]}; do
|
||||
for c in `seq 1 $clients`; do
|
||||
totalRPR=0
|
||||
OUTPUT_FILE=tdengineTestWrite-RPR${rowsPerRequest[$r]}-clients$c.out
|
||||
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
restartTaosd
|
||||
$TAOSD_DIR/taos -s "drop database db" > /dev/null 2>&1
|
||||
printTo "loop i:$i, $TDTEST_DIR/tdengineTest \
|
||||
-dataDir $DATA_DIR \
|
||||
-numOfFiles $NUM_OF_FILES \
|
||||
-w -clients $c \
|
||||
-rowsPerRequest ${rowsPerRequest[$r]}"
|
||||
$TDTEST_DIR/tdengineTest \
|
||||
-dataDir $DATA_DIR \
|
||||
-numOfFiles $NUM_OF_FILES \
|
||||
-w -clients $c \
|
||||
-rowsPerRequest ${rowsPerRequest[$r]} \
|
||||
| tee $OUTPUT_FILE
|
||||
RPR=`cat $OUTPUT_FILE | grep speed | awk '{print $(NF-1)}'`
|
||||
totalRPR=`echo "scale=4; $totalRPR + $RPR" | bc`
|
||||
printTo "rows:${rowsPerRequest[$r]}, clients:$c, i:$i RPR:$RPR"
|
||||
done
|
||||
avgRPR[$r,$c]=`echo "scale=4; $totalRPR / $NUM_LOOP" | bc`
|
||||
printTo "r:${rowsPerRequest[$r]} c:$c avgRPR:${avgRPR[$r,$c]}"
|
||||
done
|
||||
done
|
||||
|
||||
printf "R/R, "
|
||||
for c in `seq 1 $clients`; do
|
||||
if [ "$c" == "1" ]; then
|
||||
|
@ -23,29 +59,10 @@ function runTest {
|
|||
done
|
||||
printf "\n"
|
||||
|
||||
for r in ${rowsPerRequest[@]}; do
|
||||
printf "$r, "
|
||||
for r in ${!rowsPerRequest[@]}; do
|
||||
printf "${rowsPerRequest[$r]}, "
|
||||
for c in `seq 1 $clients`; do
|
||||
totalRPR=0
|
||||
for i in `seq 1 $NUM_LOOP`; do
|
||||
restartTaosd
|
||||
$TAOSD_DIR/taos -s "drop database db" > /dev/null 2>&1
|
||||
printTo "loop i:$i, $TDTEST_DIR/tdengineTest \
|
||||
-dataDir $DATA_DIR \
|
||||
-numOfFiles $NUM_OF_FILES \
|
||||
-w -clients $c \
|
||||
-rowsPerRequest $r"
|
||||
RPR=`$TDTEST_DIR/tdengineTest \
|
||||
-dataDir $DATA_DIR \
|
||||
-numOfFiles $NUM_OF_FILES \
|
||||
-w -clients $c \
|
||||
-rowsPerRequest $r \
|
||||
| grep speed | awk '{print $(NF-1)}'`
|
||||
totalRPR=`echo "scale=4; $totalRPR + $RPR" | bc`
|
||||
printTo "rows:$r, clients:$c, i:$i RPR:$RPR"
|
||||
done
|
||||
avgRPR=`echo "scale=4; $totalRPR / $NUM_LOOP" | bc`
|
||||
printf "$avgRPR, "
|
||||
printf "${avgRPR[$r,$c]}, "
|
||||
done
|
||||
printf "\n"
|
||||
done
|
||||
|
@ -80,10 +97,6 @@ while : ; do
|
|||
verbose=true
|
||||
shift ;;
|
||||
|
||||
-n)
|
||||
NUM_LOOP=$2
|
||||
shift 2;;
|
||||
|
||||
master)
|
||||
master=true
|
||||
develop=false
|
||||
|
@ -98,18 +111,22 @@ while : ; do
|
|||
clients=$2
|
||||
shift 2;;
|
||||
|
||||
-n)
|
||||
NUM_LOOP=$2
|
||||
shift 2;;
|
||||
|
||||
*)
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if $master ; then
|
||||
printTo "Test master branch.."
|
||||
echo "Test master branch.."
|
||||
cp /mnt/root/cfg/master/taos.cfg /etc/taos/taos.cfg
|
||||
WORK_DIR=/mnt/root/TDengine.master
|
||||
else
|
||||
printTo "Test develop branch.."
|
||||
cp /mnt/root/cfg/perftest/taos.cfg /etc/taos/taos.cfg
|
||||
echo "Test develop branch.."
|
||||
cp /mnt/root/cfg/develop/taos.cfg /etc/taos/taos.cfg
|
||||
WORK_DIR=/mnt/root/TDengine
|
||||
fi
|
||||
|
||||
|
@ -118,4 +135,4 @@ TDTEST_DIR=$WORK_DIR/tests/comparisonTest/tdengine
|
|||
|
||||
runTest
|
||||
|
||||
printTo "Test done!"
|
||||
echo "Test done!"
|
||||
|
|
|
@ -51,10 +51,6 @@ class TDTestCase:
|
|||
tdSql.checkRows(10)
|
||||
tdSql.checkData(0, 0, 2.0)
|
||||
|
||||
tdSql.query("select col1 + col2 * col3 from test1")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkData(1, 0, 6.0)
|
||||
|
||||
tdSql.query("select col1 + col2 * col3 + col3 / col4 + col5 + col6 from test1")
|
||||
tdSql.checkRows(10)
|
||||
tdSql.checkData(0, 0, 3.2)
|
||||
|
|
|
@ -36,7 +36,8 @@ class TDTestCase:
|
|||
"insert into tb2 using stb1 tags(2,'tb2', '表2') values ('2020-04-18 15:00:02.000', 3, 2.1), ('2020-04-18 15:00:03.000', 4, 2.2)")
|
||||
|
||||
# inner join --- bug
|
||||
tdSql.error("select * from tb1 a, tb2 b where a.ts = b.ts")
|
||||
tdSql.query("select * from tb1 a, tb2 b where a.ts = b.ts")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
# join 3 tables -- bug exists
|
||||
tdSql.error("select stb_t.ts, stb_t.dscrption, stb_t.temperature, stb_p.id, stb_p.dscrption, stb_p.pressure,stb_v.velocity from stb_p, stb_t, stb_v where stb_p.ts=stb_t.ts and stb_p.ts=stb_v.ts and stb_p.id = stb_t.id")
|
||||
|
|
Loading…
Reference in New Issue