Merge branch 'develop' into feature/2.0tsdb
This commit is contained in:
commit
d426627e2b
|
@ -6,7 +6,7 @@ IF (TD_SYNC)
|
|||
ENDIF ()
|
||||
|
||||
IF (TD_ACCOUNT)
|
||||
ADD_DEFINITIONS(-D_ACCOUNT)
|
||||
ADD_DEFINITIONS(-D_ACCT)
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_ADMIN)
|
||||
|
|
|
@ -1,14 +1,6 @@
|
|||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
||||
PROJECT(TDengine)
|
||||
|
||||
IF (${CLUSTER} MATCHES "true")
|
||||
SET(TD_CLUSTER TRUE)
|
||||
MESSAGE(STATUS "Build with cluster plugins")
|
||||
ELSEIF (${CLUSTER} MATCHES "false")
|
||||
SET(TD_CLUSTER FALSE)
|
||||
MESSAGE(STATUS "Build without cluster plugins")
|
||||
ENDIF ()
|
||||
|
||||
IF (${ACCOUNT} MATCHES "true")
|
||||
SET(TD_ACCOUNT TRUE)
|
||||
MESSAGE(STATUS "Build with account plugins")
|
||||
|
|
|
@ -23,7 +23,7 @@ extern "C" {
|
|||
int32_t dnodeInitMClient();
|
||||
void dnodeCleanupMClient();
|
||||
void dnodeSendMsgToMnode(SRpcMsg *rpcMsg);
|
||||
void * dnodeGetMpeerInfos();
|
||||
void * dnodeGetMnodeList();
|
||||
int32_t dnodeGetDnodeId();
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -332,7 +332,7 @@ uint32_t dnodeGetMnodeMasteIp() {
|
|||
return tsMnodeIpList.ip[tsMnodeIpList.inUse];
|
||||
}
|
||||
|
||||
void* dnodeGetMpeerInfos() {
|
||||
void* dnodeGetMnodeList() {
|
||||
return &tsMnodeInfos;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,9 +25,6 @@ int32_t mgmtStartSystem();
|
|||
void mgmtCleanUpSystem();
|
||||
void mgmtStopSystem();
|
||||
|
||||
extern char version[];
|
||||
extern char tsMnodeDir[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -20,15 +20,10 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
struct HttpServer;
|
||||
|
||||
void adminInit();
|
||||
|
||||
struct _http_server_obj_;
|
||||
|
||||
extern void (*adminInitHandleFp)(struct _http_server_obj_* pServer);
|
||||
extern void (*opInitHandleFp)(struct _http_server_obj_* pServer);
|
||||
void adminInitHandle(struct HttpServer* pServer);
|
||||
void opInitHandle(struct HttpServer* pServer);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
#include "mgmtSdb.h"
|
||||
#include "mgmtUser.h"
|
||||
|
||||
static void * tsAcctSdb = NULL;
|
||||
static int32_t tsAcctUpdateSize;
|
||||
static void mgmtCreateRootAcct();
|
||||
void * tsAcctSdb = NULL;
|
||||
int32_t tsAcctUpdateSize;
|
||||
static void mgmtCreateRootAcct();
|
||||
|
||||
static int32_t mgmtActionAcctDestroy(SSdbOperDesc *pOper) {
|
||||
SAcctObj *pAcct = pOper->pObj;
|
||||
|
|
|
@ -30,9 +30,9 @@
|
|||
#include "mgmtShell.h"
|
||||
#include "mgmtUser.h"
|
||||
|
||||
int32_t tsMnodeIsMaster = true;
|
||||
static void * tsMnodeSdb = NULL;
|
||||
static int32_t tsMnodeUpdateSize = 0;
|
||||
static int32_t tsMnodeIsMaster = true;
|
||||
static int32_t mgmtGetMnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn);
|
||||
static int32_t mgmtRetrieveMnodes(SShowObj *pShow, char *data, int32_t rows, void *pConn);
|
||||
|
||||
|
@ -87,6 +87,14 @@ static int32_t mgmtMnodeActionDecode(SSdbOperDesc *pOper) {
|
|||
}
|
||||
|
||||
static int32_t mgmtMnodeActionRestored() {
|
||||
if (mgmtGetMnodesNum() == 1) {
|
||||
SMnodeObj *pMnode = NULL;
|
||||
mgmtGetNextMnode(NULL, &pMnode);
|
||||
if (pMnode != NULL) {
|
||||
pMnode->role = TAOS_SYNC_ROLE_MASTER;
|
||||
mgmtReleaseMnode(pMnode);
|
||||
}
|
||||
}
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -243,6 +243,11 @@ int taosInitTimer(void (*callback)(int), int ms) {
|
|||
return setitimer(ITIMER_REAL, &tv, NULL);
|
||||
}
|
||||
|
||||
void taosUninitTimer() {
|
||||
struct itimerval tv = { 0 };
|
||||
return setitimer(ITIMER_REAL, &tv, NULL);
|
||||
}
|
||||
|
||||
void taosGetSystemTimezone() {
|
||||
// get and set default timezone
|
||||
SGlobalConfig *cfg_timezone = tsGetConfigOption("timezone");
|
||||
|
|
|
@ -286,20 +286,23 @@ void *taosProcessAlarmSignal(void *tharg) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static pthread_t timerThread;
|
||||
|
||||
int taosInitTimer(void (*callback)(int), int ms) {
|
||||
pthread_t thread;
|
||||
pthread_attr_t tattr;
|
||||
pthread_attr_init(&tattr);
|
||||
pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);
|
||||
int code = pthread_create(&thread, &tattr, taosProcessAlarmSignal, callback);
|
||||
pthread_detach(thread);
|
||||
int code = pthread_create(&timerThread, &tattr, taosProcessAlarmSignal, callback);
|
||||
pthread_attr_destroy(&tattr);
|
||||
if (code != 0) {
|
||||
tmrError("failed to create timer thread");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return thread;
|
||||
void taosUninitTimer() {
|
||||
pthread_cancel(timerThread);
|
||||
pthread_join(timerThread, NULL);
|
||||
}
|
||||
|
||||
ssize_t tread(int fd, void *buf, size_t count) {
|
||||
|
|
|
@ -30,8 +30,8 @@ void WINAPI taosWinOnTimer(UINT wTimerID, UINT msg, DWORD_PTR dwUser, DWORD_PTR
|
|||
}
|
||||
}
|
||||
|
||||
static MMRESULT timerId;
|
||||
int taosInitTimer(win_timer_f callback, int ms) {
|
||||
MMRESULT timerId;
|
||||
DWORD_PTR param = *((int64_t *) & callback);
|
||||
|
||||
timerId = timeSetEvent(ms, 1, (LPTIMECALLBACK)taosWinOnTimer, param, TIME_PERIODIC);
|
||||
|
@ -41,6 +41,10 @@ int taosInitTimer(win_timer_f callback, int ms) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void taosUninitTimer() {
|
||||
timeKillEvent(timerId);
|
||||
}
|
||||
|
||||
void taosMsleep(int mseconds) {
|
||||
Sleep(mseconds);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM))
|
|||
ADD_LIBRARY(http ${SRC})
|
||||
TARGET_LINK_LIBRARIES(http taos_static z)
|
||||
|
||||
IF (TD_CLUSTER)
|
||||
TARGET_LINK_LIBRARIES(http)
|
||||
IF (TD_ADMIN)
|
||||
TARGET_LINK_LIBRARIES(http admin)
|
||||
ENDIF ()
|
||||
ENDIF ()
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include "taosdef.h"
|
||||
#include "tutil.h"
|
||||
#include "zlib.h"
|
||||
|
||||
#include "tlog.h"
|
||||
#include "http.h"
|
||||
#include "httpJson.h"
|
||||
|
||||
|
@ -206,10 +206,10 @@ typedef struct HttpThread {
|
|||
int threadId;
|
||||
char label[HTTP_LABEL_SIZE];
|
||||
bool (*processData)(HttpContext *pContext);
|
||||
struct _http_server_obj_ *pServer; // handle passed by upper layer during pServer initialization
|
||||
struct HttpServer *pServer; // handle passed by upper layer during pServer initialization
|
||||
} HttpThread;
|
||||
|
||||
typedef struct _http_server_obj_ {
|
||||
typedef struct HttpServer {
|
||||
char label[HTTP_LABEL_SIZE];
|
||||
char serverIp[16];
|
||||
uint16_t serverPort;
|
||||
|
@ -313,4 +313,27 @@ const char* httpContextStateStr(HttpContextState state);
|
|||
bool httpAlterContextState(HttpContext *pContext, HttpContextState srcState, HttpContextState destState);
|
||||
void httpRemoveContextFromEpoll(HttpThread *pThread, HttpContext *pContext);
|
||||
|
||||
#define httpError(...) \
|
||||
if (httpDebugFlag & DEBUG_ERROR) { \
|
||||
tprintf("ERROR HTP ", 255, __VA_ARGS__); \
|
||||
}
|
||||
#define httpWarn(...) \
|
||||
if (httpDebugFlag & DEBUG_WARN) { \
|
||||
tprintf("WARN HTP ", httpDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define httpTrace(...) \
|
||||
if (httpDebugFlag & DEBUG_TRACE) { \
|
||||
tprintf("HTP ", httpDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define httpDump(...) \
|
||||
if (httpDebugFlag & DEBUG_TRACE) { \
|
||||
taosPrintLongString("HTP ", httpDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define httpPrint(...) \
|
||||
{ tprintf("HTP ", 255, __VA_ARGS__); }
|
||||
|
||||
#define httpLError(...) taosLogError(__VA_ARGS__) httpError(__VA_ARGS__)
|
||||
#define httpLWarn(...) taosLogWarn(__VA_ARGS__) httpWarn(__VA_ARGS__)
|
||||
#define httpLPrint(...) taosLogPrint(__VA_ARGS__) httpPrint(__VA_ARGS__)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -13,11 +13,9 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define _DEFAULT_SOURCE
|
||||
#include "os.h"
|
||||
#include "tadmin.h"
|
||||
#include "http.h"
|
||||
#include "httpCode.h"
|
||||
#include "httpHandle.h"
|
||||
|
@ -27,28 +25,17 @@
|
|||
#include "tglobalcfg.h"
|
||||
#include "tsocket.h"
|
||||
#include "ttimer.h"
|
||||
|
||||
#include "gcHandle.h"
|
||||
#include "httpHandle.h"
|
||||
#include "restHandle.h"
|
||||
#include "tgHandle.h"
|
||||
#include "tlog.h"
|
||||
|
||||
#ifndef _ADMIN
|
||||
|
||||
void (*adminInitHandleFp)(HttpServer* pServer) = NULL;
|
||||
void (*opInitHandleFp)(HttpServer* pServer) = NULL;
|
||||
void adminInitHandle(HttpServer* pServer) {}
|
||||
void opInitHandle(HttpServer* pServer) {}
|
||||
|
||||
void adminInitHandle(HttpServer* pServer) {
|
||||
if (adminInitHandleFp) {
|
||||
(*adminInitHandleFp)(pServer);
|
||||
}
|
||||
}
|
||||
|
||||
void opInitHandle(HttpServer* pServer) {
|
||||
if (opInitHandleFp) {
|
||||
(*opInitHandleFp)(pServer);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static HttpServer *httpServer = NULL;
|
||||
void taosInitNote(int numOfNoteLines, int maxNotes, char* lable);
|
||||
|
|
|
@ -13,17 +13,37 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define _DEFAULT_SOURCE
|
||||
#include "os.h"
|
||||
|
||||
#include "tlog.h"
|
||||
#include "monitor.h"
|
||||
#include "dnode.h"
|
||||
#include "monitorSystem.h"
|
||||
#include "tsclient.h"
|
||||
#include "taosdef.h"
|
||||
#include "tsystem.h"
|
||||
#include "ttime.h"
|
||||
#include "ttimer.h"
|
||||
#include "tutil.h"
|
||||
#include "monitorSystem.h"
|
||||
|
||||
#define monitorError(...) \
|
||||
if (monitorDebugFlag & DEBUG_ERROR) { \
|
||||
tprintf("ERROR MON ", 255, __VA_ARGS__); \
|
||||
}
|
||||
#define monitorWarn(...) \
|
||||
if (monitorDebugFlag & DEBUG_WARN) { \
|
||||
tprintf("WARN MON ", monitorDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define monitorTrace(...) \
|
||||
if (monitorDebugFlag & DEBUG_TRACE) { \
|
||||
tprintf("MON ", monitorDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define monitorPrint(...) \
|
||||
{ tprintf("MON ", 255, __VA_ARGS__); }
|
||||
|
||||
#define monitorLError(...) taosLogError(__VA_ARGS__) monitorError(__VA_ARGS__)
|
||||
#define monitorLWarn(...) taosLogWarn(__VA_ARGS__) monitorWarn(__VA_ARGS__)
|
||||
#define monitorLPrint(...) taosLogPrint(__VA_ARGS__) monitorPrint(__VA_ARGS__)
|
||||
|
||||
#define SQL_LENGTH 1024
|
||||
#define LOG_LEN_STR 80
|
||||
|
|
|
@ -107,8 +107,4 @@ ELSEIF(TD_DARWIN_64)
|
|||
TARGET_LINK_LIBRARIES(tutil iconv pthread os)
|
||||
ENDIF()
|
||||
|
||||
#IF (TD_CLUSTER)
|
||||
# TARGET_LINK_LIBRARIES(tutil mstorage)
|
||||
#ENDIF ()
|
||||
|
||||
|
||||
|
|
|
@ -177,48 +177,6 @@ extern uint32_t cdebugFlag;
|
|||
tprintf("DND QRY ", qdebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
|
||||
#define httpError(...) \
|
||||
if (httpDebugFlag & DEBUG_ERROR) { \
|
||||
tprintf("ERROR HTP ", 255, __VA_ARGS__); \
|
||||
}
|
||||
#define httpWarn(...) \
|
||||
if (httpDebugFlag & DEBUG_WARN) { \
|
||||
tprintf("WARN HTP ", httpDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define httpTrace(...) \
|
||||
if (httpDebugFlag & DEBUG_TRACE) { \
|
||||
tprintf("HTP ", httpDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define httpDump(...) \
|
||||
if (httpDebugFlag & DEBUG_TRACE) { \
|
||||
taosPrintLongString("HTP ", httpDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define httpPrint(...) \
|
||||
{ tprintf("HTP ", 255, __VA_ARGS__); }
|
||||
|
||||
#define httpLError(...) taosLogError(__VA_ARGS__) httpError(__VA_ARGS__)
|
||||
#define httpLWarn(...) taosLogWarn(__VA_ARGS__) httpWarn(__VA_ARGS__)
|
||||
#define httpLPrint(...) taosLogPrint(__VA_ARGS__) httpPrint(__VA_ARGS__)
|
||||
|
||||
#define monitorError(...) \
|
||||
if (monitorDebugFlag & DEBUG_ERROR) { \
|
||||
tprintf("ERROR MON ", 255, __VA_ARGS__); \
|
||||
}
|
||||
#define monitorWarn(...) \
|
||||
if (monitorDebugFlag & DEBUG_WARN) { \
|
||||
tprintf("WARN MON ", monitorDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define monitorTrace(...) \
|
||||
if (monitorDebugFlag & DEBUG_TRACE) { \
|
||||
tprintf("MON ", monitorDebugFlag, __VA_ARGS__); \
|
||||
}
|
||||
#define monitorPrint(...) \
|
||||
{ tprintf("MON ", 255, __VA_ARGS__); }
|
||||
|
||||
#define monitorLError(...) taosLogError(__VA_ARGS__) monitorError(__VA_ARGS__)
|
||||
#define monitorLWarn(...) taosLogWarn(__VA_ARGS__) monitorWarn(__VA_ARGS__)
|
||||
#define monitorLPrint(...) taosLogPrint(__VA_ARGS__) monitorPrint(__VA_ARGS__)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -139,6 +139,7 @@ int32_t taosFileRename(char *fullPath, char *suffix, char delimiter, char **dstP
|
|||
void getTmpfilePath(const char *fileNamePattern, char *dstPath);
|
||||
|
||||
int32_t taosInitTimer(void (*callback)(int), int32_t ms);
|
||||
void taosUninitTimer();
|
||||
|
||||
bool taosMbsToUcs4(char *mbs, int32_t mbs_len, char *ucs4, int32_t ucs4_max_len);
|
||||
|
||||
|
|
|
@ -84,8 +84,6 @@ static tmr_ctrl_t* tmrCtrls;
|
|||
static tmr_ctrl_t* unusedTmrCtrl = NULL;
|
||||
static void* tmrQhandle;
|
||||
static int numOfTmrCtrl = 0;
|
||||
//static void* tmrContext = NULL;
|
||||
static int athread = 0;
|
||||
|
||||
int taosTmrThreads = 1;
|
||||
|
||||
|
@ -519,7 +517,7 @@ static void taosTmrModuleInit(void) {
|
|||
}
|
||||
|
||||
tmrQhandle = taosInitScheduler(10000, taosTmrThreads, "tmr");
|
||||
athread = taosInitTimer(taosTimerLoopFunc, MSECONDS_PER_TICK);
|
||||
taosInitTimer(taosTimerLoopFunc, MSECONDS_PER_TICK);
|
||||
|
||||
tmrTrace("timer module is initialized, number of threads: %d", taosTmrThreads);
|
||||
}
|
||||
|
@ -562,19 +560,29 @@ void taosTmrCleanUp(void* handle) {
|
|||
pthread_mutex_unlock(&tmrCtrlMutex);
|
||||
|
||||
if (numOfTmrCtrl <=0) {
|
||||
// pthread_cancel(athread);
|
||||
taosUninitTimer();
|
||||
|
||||
taosCleanUpScheduler(tmrQhandle);
|
||||
|
||||
for (int i = 0; i < tListLen(wheels); i++) {
|
||||
time_wheel_t* wheel = wheels + i;
|
||||
pthread_mutex_destroy(&wheel->mutex);
|
||||
free(wheel->slots);
|
||||
}
|
||||
|
||||
pthread_mutex_destroy(&tmrCtrlMutex);
|
||||
free(timerMap.slots);
|
||||
pthread_mutex_destroy(&tmrCtrlMutex);
|
||||
|
||||
for (size_t i = 0; i < timerMap.size; i++) {
|
||||
timer_list_t* list = timerMap.slots + i;
|
||||
tmr_obj_t* t = list->timers;
|
||||
while (t != NULL) {
|
||||
tmr_obj_t* next = t->mnext;
|
||||
free(t);
|
||||
t = next;
|
||||
}
|
||||
}
|
||||
free(timerMap.slots);
|
||||
free(tmrCtrls);
|
||||
taosCleanUpScheduler(tmrQhandle);
|
||||
tmrModuleInit = PTHREAD_ONCE_INIT;
|
||||
|
||||
tmrTrace("timer module is cleaned up");
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ static void vnodeNotifyRole(void *ahandle, int8_t role);
|
|||
|
||||
static pthread_once_t vnodeModuleInit = PTHREAD_ONCE_INIT;
|
||||
|
||||
#ifndef _VPEER
|
||||
#ifndef _SYNC
|
||||
tsync_h syncStart(const SSyncInfo *info) { return NULL; }
|
||||
int syncForwardToPeer(tsync_h shandle, void *pHead, void *mhandle) { return 0; }
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue