diff --git a/packaging/cfg/taos.cfg b/packaging/cfg/taos.cfg index 45fc6459e9..40b4c43fdd 100644 --- a/packaging/cfg/taos.cfg +++ b/packaging/cfg/taos.cfg @@ -6,10 +6,22 @@ ######################################################## # first full-qualified domain name (FQDN) for TDengine system -# first 127.0.0.1 +# first hostname1:6030 # second full-qualified domain name (FQDN) for TDengine system, for cluster edition only -# second 127.0.0.1 +# second cluster_hostname2:6030 + +# the arbitrator's full-qualified domain name (FQDN) for TDengine system, for cluster edition only +# arbitrator arbitrator_hostname:6030 + +# the full-qualified domain name (FQDN) of dnode +# fqdn hostname:6030 + +# port for MNode connect to Client, default udp[6030-6055] tcp[6030] +# serverPort 6030 + +# http service port, default tcp[6020] +# httpPort 6020 # set socket type ("udp" and "tcp") # the server and client should have the same socket type. Otherwise, connect will fail @@ -30,51 +42,29 @@ # log file's directory # logDir /var/log/taos -# http service port, default tcp[6020] -# httpPort 6020 +# number of management nodes in the system +# numOfMnodes 3 -# port for MNode connect to Client, default udp[6030-6055] tcp[6030] -# serverPort 6030 +# optional roles for dnode. 0 - any, 1 - mnode, 2 - dnode +# alternativeRole 0 # number of threads per CPU core -# numOfThreadsPerCore 1 +# numOfThreadsPerCore 1.0 # number of vnodes per core in DNode # numOfVnodesPerCore 8 +# the ratio of threads responsible for querying in the total thread +# ratioOfQueryThreads 0.5 + # number of total vnodes in DNode # numOfTotalVnodes 0 # max number of tables per vnode # maxtablesPerVnode 1000 -# cache block size -# cache 16384 - -# row of records in file block -# minRows 100 -# maxRows 4096 - -# number of cache blocks per vnode -# blocks 2 - -# interval of system monitor -# monitorInterval 60 - -# 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 -# rpcTimer 300 - -# RPC maximum time for ack, seconds -# rpcMaxTime 600 - -# commit interval,unit is second -# ctime 3600 +# interval of check load balance when the management node is in normal operation +# balanceInterval 300 # interval of DNode report status to MNode, unit is Second, for cluster version only # statusInterval 1 @@ -82,29 +72,29 @@ # interval of Shell send HB to MNode, unit is Second # shellActivityTimer 3 -# interval of DNode send HB to DNode, unit is Second, for cluster version only -# vnodePeerHBTimer 1 +# interval of system monitor +# monitorInterval 30 -# interval of MNode send HB to MNode, unit is Second, for cluster version only -# mgmtPeerHBTimer 1 +# RPC re-try timer, millisecond +# rpcTimer 300 + +# RPC maximum time for ack, seconds +# rpcMaxTime 600 # duration of to keep tableMeta kept in Cache, seconds # tableMetaKeepTimer 7200 -# max number of users -# maxUsers 1000 +# Minimum sliding window time +# minSlidingTime 10 -# max number of databases -# maxDbs 1000 +# Time window minimum +# minIntervalTime 10 -# max number of tables -# maxTables 650000 +# max length of an SQL +# maxSQLLength 65380 -# max number of Dnodes, for cluster version only -# maxDnodes 1000 - -# Max number of VGroups, for cluster version only -# maxVGroups 1000 +# Support the maximum number of records allowed for super table time sorting +# maxNumOfOrderedRes 100000 # system locale # locale en_US.UTF-8 @@ -121,6 +111,24 @@ # enable/disable async log # asyncLog 1 +# 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 + +# cache block size (Mbyte) +# cache 16 + +# number of cache blocks per vnode +# blocks 4 + +# min row of records in file block +# minRows 100 + +# max row of records in file block +# maxRows 4096 + # enable/disable compression # comp 1 @@ -131,31 +139,25 @@ # keep 3650 # number of replications, for cluster version only -# replications 1 +# replica 1 -# client default database(database should be created) -# defaultDB +# max number of connections from client for dnode +# maxShellConns 5000 -# client default username -# defaultUser root +# max numerber of connections to one database +# maxConnections 5000 -# client default password -# defaultPass taosdata +# Stop writing logs when the disk size of the log folder is less than this value +# minimalLogDirGB 0.1 -# max number of connections from client for mgmt node -# maxShellConns 2000 +# Stop writing temporary files when the disk size of the log folder is less than this value +# minimalTmpDirGB 0.1 -# max numerber of meter Connections -# maxMeterConnections 10000 - -# max connection to management node -# maxMgmtConnections 2000 - -# max connection to Vnode -# maxVnodeConnections 10000 +# Stop writing data when the disk size of the log folder is less than this value +# minimalDataDirGB 0.1 # mnode take into account while balance, for cluster version only -# mnodeEqualVnodeNum 4 +# mnodeEqualVnodeNum 4 # number of seconds allowed for a dnode to be offline, for cluster version only # offlineThreshold 864000 @@ -170,10 +172,10 @@ # mqtt 0 # mqtt uri -# mqttBrokerAddress mqtt://username:password@hostname:1883/taos/ +# mqttBrokerAddress mqtt://username:password@hostname:1883/taos/ # mqtt client name -# mqttBrokerClientId taos_mqtt +# mqttBrokerClientId taos_mqtt # maximum number of rows returned by the restful interface # restfulRowLimit 10240 @@ -181,41 +183,17 @@ # number of threads used to process http requests # httpMaxThreads 2 -# pre-allocated number of http sessions -# httpCacheSessions 100 +# The minimum time to wait before the first stream execution +# maxFirstStreamCompDelay 10000 -# whether to enable HTTP compression transmission -# httpEnableCompress 0 +# Retry wait time benchmark +# retryStreamCompDelay 10 # the delayed time for launching each continuous query. 10% of the whole computing time window by default. # streamCompDelayRatio 0.1 # the max allowed delayed time for launching continuous query. 20ms by default -# tsMaxStreamComputDelay 20000 - -# whether the telegraf table name contains the number of tags and the number of fields -# telegrafUseFieldNum 0 - -# enable table names generated by telegraf can be configured -# use /etc/taos/taos.telegraf.cfg as the configuration file, such as -# { -# "metrics": [ -# { -# "name" : "system", -# "tbname" : "system_uptime", -# "fields": [ -# "uptime" -# ] -# }, -# { -# "name": "system", -# "tbname" : "system_uptime_format", -# "fields": [ -# "uptime_format" -# ] -# } -# ] -# } +# maxStreamCompDelay 20000 # The following parameter is used to limit the maximum number of lines in log files. # max number of rows per log filters @@ -226,35 +204,62 @@ # 131: output warning and error,135: output info, warning and error to log. # 199: output debug, info, warning and error to both screen and file +# debug flag for basic utils +# debugFlag 131 + # debug flag for meta management messages # mDebugFlag 135 # debug flag for dnode messages # dDebugFlag 131 +# debug flag for TDengine SDB +# sDebugFlag 135 + # debug flag for TDengine SDB # sdbDebugFlag 135 # debug flag for RPC # rpcDebugFlag 131 -# debug flag for basic utils -# debugFlag 131 +# debug flag for TAOS TIMER +# tmrDebugFlag 131 # debug flag for TDengine client # cDebugFlag 131 +# debug flag for JNI +# jniDebugflag 131 + +# debug flag for ODBC +# odbcDebugflag 131 + +# debug flag for storage +# uDebugflag 131 + +# debug flag for http server +# httpDebugFlag 131 + +# debug flag for mqtt +# mqttDebugFlag 131 + +# debug flag for monitor +# monitorDebugFlag 131 + # debug flag for query # qDebugflag 131 # debug flag for http server -# httpDebugFlag 131 +# tsdbDebugFlag 131 -# debug flag for system monitor -# monitorDebugFlag 131 +# Record the SQL through restful interface +# httpEnableRecordSql 0 -#debug flag for mqtt client -# mqttDebugFlag 131 +# Record the SQL in taos client +# tscEnableRecordSql 0 -# debug flag for TAOS TIMER -# tmrDebugFlag 131 +# if generate core file when service crash +# enableCoreFile 1 + +# The maximum display width of binary and nchar fields in the shell. The parts exceeding this limit will be hidden +# maxBinaryDisplayWidth 30 \ No newline at end of file diff --git a/src/mnode/inc/mnodeDef.h b/src/mnode/inc/mnodeDef.h index 80a638a21e..67159ecea7 100644 --- a/src/mnode/inc/mnodeDef.h +++ b/src/mnode/inc/mnodeDef.h @@ -29,21 +29,28 @@ struct SAcctObj; struct SUserObj; struct SMnodeObj; +/* +struct define notes: +1. The first field must be the xxxxId field or name field , e.g. 'int32_t dnodeId', 'int32_t mnodeId', 'char name[]', 'char user[]', ... +2. From the dnodeId field to the updataEnd field, these information will be falled disc; +3. The fields behind the updataEnd field can be changed; +*/ + typedef struct SDnodeObj { int32_t dnodeId; + int32_t openVnodes; + int64_t createdTime; + int32_t totalVnodes; // from dnode status msg, config information + int32_t customScore; // config by user + uint32_t lastAccess; + uint16_t numOfCores; // from dnode status msg uint16_t dnodePort; char dnodeFqdn[TSDB_FQDN_LEN]; char dnodeEp[TSDB_EP_LEN]; - int64_t createdTime; - uint32_t lastAccess; - int32_t openVnodes; - int32_t totalVnodes; // from dnode status msg, config information - int32_t customScore; // config by user - uint16_t numOfCores; // from dnode status msg int8_t alternativeRole; // from dnode status msg, 0-any, 1-mgmt, 2-dnode int8_t status; // set in balance function int8_t isMgmt; - int8_t reserved[15]; + int8_t reserved0[14]; int8_t updateEnd[1]; int32_t refCount; uint32_t moduleStatus; @@ -54,15 +61,18 @@ typedef struct SDnodeObj { int16_t cpuAvgUsage; // calc from sys.cpu int16_t memoryAvgUsage; // calc from sys.mem int16_t bandwidthUsage; // calc from sys.band + int8_t reserved1[2]; } SDnodeObj; typedef struct SMnodeObj { int32_t mnodeId; + int8_t reserved0[4]; int64_t createdTime; - int8_t reserved[14]; + int8_t reserved1[7]; int8_t updateEnd[1]; int32_t refCount; int8_t role; + int8_t reserved2[3]; } SMnodeObj; typedef struct STableObj { @@ -71,34 +81,37 @@ typedef struct STableObj { } STableObj; typedef struct SSuperTableObj { - STableObj info; + STableObj info; + int8_t reserved0[3]; // for fill struct STableObj to 4byte align + int32_t sversion; uint64_t uid; int64_t createdTime; - int32_t sversion; int32_t tversion; int32_t numOfColumns; int32_t numOfTags; - int8_t reserved[15]; + int8_t reserved1[3]; int8_t updateEnd[1]; int32_t refCount; int32_t numOfTables; - int16_t nextColId; SSchema * schema; void * vgHash; + int16_t nextColId; + int8_t reserved2[6]; } SSuperTableObj; typedef struct { - STableObj info; + STableObj info; + int8_t reserved0[3]; // for fill struct STableObj to 4byte align + int32_t sversion; //used by normal table uint64_t uid; + uint64_t suid; int64_t createdTime; - int32_t sversion; //used by normal table int32_t numOfColumns; //used by normal table int32_t sid; int32_t vgId; - uint64_t suid; int32_t sqlLen; - int8_t reserved[1]; int8_t updateEnd[1]; + int8_t reserved1[1]; int16_t nextColId; //used by normal table int32_t refCount; char* sql; //used by normal table @@ -115,23 +128,24 @@ typedef struct { typedef struct SVgObj { uint32_t vgId; - char dbName[TSDB_DB_NAME_LEN]; - int64_t createdTime; - SVnodeGid vnodeGid[TSDB_MAX_REPLICA]; int32_t numOfVnodes; + int64_t createdTime; int32_t lbDnodeId; int32_t lbTime; + char dbName[TSDB_DB_NAME_LEN]; int8_t inUse; int8_t accessState; - int8_t reserved[12]; + int8_t reserved0[5]; + SVnodeGid vnodeGid[TSDB_MAX_REPLICA]; + int8_t reserved1[7]; int8_t updateEnd[1]; int32_t refCount; - struct SVgObj *prev, *next; - struct SDbObj *pDb; int32_t numOfTables; int64_t totalStorage; int64_t compStorage; int64_t pointsWritten; + struct SVgObj *prev, *next; + struct SDbObj *pDb; void * idPool; SChildTableObj **tableList; } SVgObj; @@ -151,17 +165,18 @@ typedef struct { int8_t compression; int8_t walLevel; int8_t replications; - int8_t reserved[16]; + int8_t reserved[12]; } SDbCfg; typedef struct SDbObj { char name[TSDB_ACCT_LEN + TSDB_DB_NAME_LEN]; + int8_t reserved0[4]; char acct[TSDB_USER_LEN]; int64_t createdTime; int32_t cfgVersion; SDbCfg cfg; int8_t status; - int8_t reserved[14]; + int8_t reserved1[14]; int8_t updateEnd[1]; int32_t refCount; int32_t numOfVgroups; @@ -186,13 +201,6 @@ typedef struct SUserObj { } SUserObj; typedef struct { - int32_t numOfUsers; - int32_t numOfDbs; - int32_t numOfTimeSeries; - int32_t numOfPointsPerSecond; - int32_t numOfConns; - int32_t numOfQueries; - int32_t numOfStreams; int64_t totalStorage; // Total storage wrtten from this account int64_t compStorage; // Compressed storage on disk int64_t queryTime; @@ -200,34 +208,44 @@ typedef struct { int64_t inblound; int64_t outbound; int64_t sKey; + int32_t numOfUsers; + int32_t numOfDbs; + int32_t numOfTimeSeries; + int32_t numOfPointsPerSecond; + int32_t numOfConns; + int32_t numOfQueries; + int32_t numOfStreams; int8_t accessState; // Checked by mgmt heartbeat message + int8_t reserved[3]; } SAcctInfo; typedef struct SAcctObj { char user[TSDB_USER_LEN]; char pass[TSDB_KEY_LEN]; SAcctCfg cfg; - int32_t acctId; int64_t createdTime; + int32_t acctId; int8_t status; - int8_t reserved[14]; + int8_t reserved0[10]; int8_t updateEnd[1]; - int32_t refCount; SAcctInfo acctInfo; + int32_t refCount; + int8_t reserved1[4]; pthread_mutex_t mutex; } SAcctObj; typedef struct { - int8_t type; - int32_t index; char db[TSDB_DB_NAME_LEN]; - void * pIter; + int8_t type; int16_t numOfColumns; + int32_t index; int32_t rowSize; int32_t numOfRows; - int32_t numOfReads; + void * pIter; int16_t offset[TSDB_MAX_COLUMNS]; int16_t bytes[TSDB_MAX_COLUMNS]; + int32_t numOfReads; + int8_t reserved0[2]; uint16_t payloadLen; char payload[]; } SShowObj;