From e10186e8a8010e7f2a86699f029cd18c4e630c1b Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Sun, 5 Apr 2020 10:29:59 +0800 Subject: [PATCH] re-arrange the head file to make it more logicl --- src/dnode/inc/dnodeRead.h | 2 -- src/dnode/inc/dnodeWrite.h | 2 -- src/dnode/src/dnodeWrite.c | 7 ++----- src/inc/dnode.h | 7 +++++++ src/inc/vnode.h | 3 +-- src/vnode/main/inc/vnodeInt.h | 3 ++- src/vnode/main/src/vnodeMain.c | 8 +++----- src/vnode/main/src/vnodeWrite.c | 6 +----- 8 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/dnode/inc/dnodeRead.h b/src/dnode/inc/dnodeRead.h index c18647e575..0d521b6bb5 100644 --- a/src/dnode/inc/dnodeRead.h +++ b/src/dnode/inc/dnodeRead.h @@ -23,8 +23,6 @@ extern "C" { int32_t dnodeInitRead(); void dnodeCleanupRead(); void dnodeRead(SRpcMsg *pMsg); -void * dnodeAllocateRqueue(); -void dnodeFreeRqueue(void *rqueue); #ifdef __cplusplus } diff --git a/src/dnode/inc/dnodeWrite.h b/src/dnode/inc/dnodeWrite.h index 054d9d796d..028eaa95c2 100644 --- a/src/dnode/inc/dnodeWrite.h +++ b/src/dnode/inc/dnodeWrite.h @@ -23,8 +23,6 @@ extern "C" { int32_t dnodeInitWrite(); void dnodeCleanupWrite(); void dnodeWrite(SRpcMsg *pMsg); -void * dnodeAllocateWqueue(); -void dnodeFreeWqueue(void *worker); void dnodeSendWriteResponse(void *pVnode, void *param, int32_t code); #ifdef __cplusplus diff --git a/src/dnode/src/dnodeWrite.c b/src/dnode/src/dnodeWrite.c index 6f46587f2c..c9621697f0 100644 --- a/src/dnode/src/dnodeWrite.c +++ b/src/dnode/src/dnodeWrite.c @@ -46,14 +46,12 @@ typedef struct _thread_obj { SWriteWorker *writeWorker; } SWriteWorkerPool; -static void *dnodeProcessWriteQueue(void *param); -static void dnodeHandleIdleWorker(SWriteWorker *pWorker); +static void *dnodeProcessWriteQueue(void *param); +static void dnodeHandleIdleWorker(SWriteWorker *pWorker); SWriteWorkerPool wWorkerPool; int32_t dnodeInitWrite() { - - vnodeInitWrite(); wWorkerPool.max = tsNumOfCores; wWorkerPool.writeWorker = (SWriteWorker *)calloc(sizeof(SWriteWorker), wWorkerPool.max); @@ -217,7 +215,6 @@ static void *dnodeProcessWriteQueue(void *param) { return NULL; } - static void dnodeHandleIdleWorker(SWriteWorker *pWorker) { int32_t num = taosGetQueueNumber(pWorker->qset); diff --git a/src/inc/dnode.h b/src/inc/dnode.h index b94d4cbacb..8d7abbf36b 100644 --- a/src/inc/dnode.h +++ b/src/inc/dnode.h @@ -38,6 +38,13 @@ typedef enum { SDnodeRunStatus dnodeGetRunStatus(); SDnodeStatisInfo dnodeGetStatisInfo(); +void *dnodeAllocateWqueue(void *pVnode); +void dnodeFreeWqueue(void *queue); +void *dnodeAllocateRqueue(void *pVnode); +void dnodeFreeRqueue(void *rqueue); +void dnodeSendWriteResponse(void *pVnode, void *param, int32_t code); + + #ifdef __cplusplus } #endif diff --git a/src/inc/vnode.h b/src/inc/vnode.h index d5edea6564..a8bf7a73ec 100644 --- a/src/inc/vnode.h +++ b/src/inc/vnode.h @@ -25,15 +25,14 @@ typedef struct { void *rsp; } SRspRet; -int32_t vnodeInitWrite(); int32_t vnodeCreate(SMDCreateVnodeMsg *pVnodeCfg); int32_t vnodeDrop(int32_t vgId); int32_t vnodeOpen(int32_t vnode, char *rootDir); int32_t vnodeClose(void *pVnode); void vnodeRelease(void *pVnode); - void* vnodeGetVnode(int32_t vgId); + void* vnodeGetRqueue(void *); void* vnodeGetWqueue(int32_t vgId); void* vnodeGetWal(void *pVnode); diff --git a/src/vnode/main/inc/vnodeInt.h b/src/vnode/main/inc/vnodeInt.h index 99dda7d389..76d74f7490 100644 --- a/src/vnode/main/inc/vnodeInt.h +++ b/src/vnode/main/inc/vnodeInt.h @@ -43,7 +43,8 @@ typedef struct { void * cq; // continuous query } SVnodeObj; -int vnodeWriteToQueue(void *param, SWalHead *pHead, int type); +int vnodeWriteToQueue(void *param, SWalHead *pHead, int type); +void vnodeInitWriteFp(void); #ifdef __cplusplus } diff --git a/src/vnode/main/src/vnodeMain.c b/src/vnode/main/src/vnodeMain.c index b4d1349e29..e0449d909d 100644 --- a/src/vnode/main/src/vnodeMain.c +++ b/src/vnode/main/src/vnodeMain.c @@ -25,11 +25,6 @@ #include "ttime.h" #include "ttimer.h" #include "twal.h" -#include "dnodeMClient.h" -#include "dnodeMgmt.h" -#include "dnodeRead.h" -#include "dnodeWrite.h" -#include "vnode.h" #include "vnodeInt.h" extern void *tsDnodeVnodesHash; @@ -100,6 +95,9 @@ int32_t vnodeDrop(int32_t vgId) { int32_t vnodeOpen(int32_t vnode, char *rootDir) { char temp[TSDB_FILENAME_LEN]; + static pthread_once_t vnodeInitWrite = PTHREAD_ONCE_INIT; + pthread_once(&vnodeInitWrite, vnodeInitWriteFp); + SVnodeObj vnodeObj = {0}; vnodeObj.vgId = vnode; vnodeObj.status = VN_STATUS_INIT; diff --git a/src/vnode/main/src/vnodeWrite.c b/src/vnode/main/src/vnodeWrite.c index 2b05aab315..59431e04c2 100644 --- a/src/vnode/main/src/vnodeWrite.c +++ b/src/vnode/main/src/vnodeWrite.c @@ -23,8 +23,6 @@ #include "tsdb.h" #include "twal.h" #include "dataformat.h" -#include "dnodeWrite.h" -#include "dnodeMgmt.h" #include "vnode.h" #include "vnodeInt.h" @@ -35,14 +33,12 @@ static int32_t vnodeProcessDropTableMsg(SVnodeObj *pVnode, void *pMsg, SRspRet static int32_t vnodeProcessAlterTableMsg(SVnodeObj *pVnode, void *pMsg, SRspRet *); static int32_t vnodeProcessDropStableMsg(SVnodeObj *pVnode, void *pMsg, SRspRet *); -int32_t vnodeInitWrite() { +void vnodeInitWriteFp(void) { vnodeProcessWriteMsgFp[TSDB_MSG_TYPE_SUBMIT] = vnodeProcessSubmitMsg; vnodeProcessWriteMsgFp[TSDB_MSG_TYPE_MD_CREATE_TABLE] = vnodeProcessCreateTableMsg; vnodeProcessWriteMsgFp[TSDB_MSG_TYPE_MD_DROP_TABLE] = vnodeProcessDropTableMsg; vnodeProcessWriteMsgFp[TSDB_MSG_TYPE_MD_ALTER_TABLE] = vnodeProcessAlterTableMsg; vnodeProcessWriteMsgFp[TSDB_MSG_TYPE_MD_DROP_STABLE] = vnodeProcessDropStableMsg; - - return 0; } int32_t vnodeProcessWrite(void *param, int qtype, SWalHead *pHead, void *item) { -- GitLab