more refact
This commit is contained in:
parent
3aae62f5dc
commit
f1df5eaabf
|
@ -33,9 +33,7 @@
|
||||||
#include "vnodeFS.h"
|
#include "vnodeFS.h"
|
||||||
#include "vnodeMemAllocator.h"
|
#include "vnodeMemAllocator.h"
|
||||||
#include "vnodeQuery.h"
|
#include "vnodeQuery.h"
|
||||||
#include "vnodeRequest.h"
|
|
||||||
#include "vnodeStateMgr.h"
|
#include "vnodeStateMgr.h"
|
||||||
#include "vnodeSync.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -73,7 +71,6 @@ struct SVnode {
|
||||||
STsdb* pTsdb;
|
STsdb* pTsdb;
|
||||||
STQ* pTq;
|
STQ* pTq;
|
||||||
SWal* pWal;
|
SWal* pWal;
|
||||||
SVnodeSync* pSync;
|
|
||||||
SVnodeFS* pFs;
|
SVnodeFS* pFs;
|
||||||
tsem_t canCommit;
|
tsem_t canCommit;
|
||||||
SQHandle* pQuery;
|
SQHandle* pQuery;
|
||||||
|
@ -84,6 +81,16 @@ int vnodeScheduleTask(SVnodeTask* task);
|
||||||
|
|
||||||
int32_t vnodePutReqToVQueryQ(SVnode *pVnode, struct SRpcMsg *pReq);
|
int32_t vnodePutReqToVQueryQ(SVnode *pVnode, struct SRpcMsg *pReq);
|
||||||
|
|
||||||
|
// For Log
|
||||||
|
extern int32_t vDebugFlag;
|
||||||
|
|
||||||
|
#define vFatal(...) do { if (vDebugFlag & DEBUG_FATAL) { taosPrintLog("TDB FATAL ", 255, __VA_ARGS__); }} while(0)
|
||||||
|
#define vError(...) do { if (vDebugFlag & DEBUG_ERROR) { taosPrintLog("TDB ERROR ", 255, __VA_ARGS__); }} while(0)
|
||||||
|
#define vWarn(...) do { if (vDebugFlag & DEBUG_WARN) { taosPrintLog("TDB WARN ", 255, __VA_ARGS__); }} while(0)
|
||||||
|
#define vInfo(...) do { if (vDebugFlag & DEBUG_INFO) { taosPrintLog("TDB ", 255, __VA_ARGS__); }} while(0)
|
||||||
|
#define vDebug(...) do { if (vDebugFlag & DEBUG_DEBUG) { taosPrintLog("TDB ", tsdbDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
|
#define vTrace(...) do { if (vDebugFlag & DEBUG_TRACE) { taosPrintLog("TDB ", tsdbDebugFlag, __VA_ARGS__); }} while(0)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
||||||
*
|
|
||||||
* This program is free software: you can use, redistribute, and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License, version 3
|
|
||||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _TD_VNODE_MAF_H_
|
|
||||||
#define _TD_VNODE_MAF_H_
|
|
||||||
|
|
||||||
#include "vnode.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int vnodeOpenMAF(SVnode *pVnode);
|
|
||||||
void vnodeCloseMAF(SVnode *pVnode);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_VNODE_MAF_H_*/
|
|
|
@ -1,33 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
||||||
*
|
|
||||||
* This program is free software: you can use, redistribute, and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License, version 3
|
|
||||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _TD_VNODE_REQUEST_H_
|
|
||||||
#define _TD_VNODE_REQUEST_H_
|
|
||||||
|
|
||||||
#include "vnode.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// SVDropTbReq
|
|
||||||
// int vnodeBuildDropTableReq(void **buf, const SVDropTbReq *pReq);
|
|
||||||
// void *vnodeParseDropTableReq(void *buf, SVDropTbReq *pReq);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_VNODE_REQUEST_H_*/
|
|
|
@ -1,33 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
||||||
*
|
|
||||||
* This program is free software: you can use, redistribute, and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License, version 3
|
|
||||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _TD_VNODE_SYNC_H_
|
|
||||||
#define _TD_VNODE_SYNC_H_
|
|
||||||
|
|
||||||
// #include "sync.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* data */
|
|
||||||
} SVnodeSync;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_VNODE_SYNC_H_*/
|
|
|
@ -1,46 +0,0 @@
|
||||||
set(META_DB_IMPL_LIST "BDB" "SQLITE")
|
|
||||||
set(META_DB_IMPL "BDB" CACHE STRING "Use BDB as the default META implementation")
|
|
||||||
set_property(CACHE META_DB_IMPL PROPERTY STRINGS ${META_DB_IMPL_LIST})
|
|
||||||
|
|
||||||
if(META_DB_IMPL IN_LIST META_DB_IMPL_LIST)
|
|
||||||
message(STATUS "META DB Impl: ${META_DB_IMPL}==============")
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Invalid META DB IMPL: ${META_DB_IMPL}==============")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
aux_source_directory(src META_SRC)
|
|
||||||
if(${META_DB_IMPL} STREQUAL "BDB")
|
|
||||||
list(REMOVE_ITEM META_SRC "src/metaSQLiteImpl.c")
|
|
||||||
elseif(${META_DB_IMPL} STREQUAL "SQLITE")
|
|
||||||
list(REMOVE_ITEM META_SRC "src/metaBDBImpl.c")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_library(meta STATIC ${META_SRC})
|
|
||||||
target_include_directories(
|
|
||||||
meta
|
|
||||||
PUBLIC "${CMAKE_SOURCE_DIR}/include/dnode/vnode/meta"
|
|
||||||
PUBLIC "${CMAKE_SOURCE_DIR}/include/libs/index"
|
|
||||||
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
|
||||||
)
|
|
||||||
target_link_libraries(
|
|
||||||
meta
|
|
||||||
PUBLIC common
|
|
||||||
PUBLIC index
|
|
||||||
)
|
|
||||||
|
|
||||||
if(${META_DB_IMPL} STREQUAL "BDB")
|
|
||||||
target_link_libraries(
|
|
||||||
meta
|
|
||||||
PUBLIC bdb
|
|
||||||
)
|
|
||||||
elseif(${META_DB_IMPL} STREQUAL "SQLITE")
|
|
||||||
target_link_libraries(
|
|
||||||
meta
|
|
||||||
PUBLIC sqlite
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
if(${BUILD_TEST})
|
|
||||||
add_subdirectory(test)
|
|
||||||
endif(${BUILD_TEST})
|
|
|
@ -1,20 +0,0 @@
|
||||||
aux_source_directory(src TQ_SRC)
|
|
||||||
add_library(tq ${TQ_SRC})
|
|
||||||
target_include_directories(
|
|
||||||
tq
|
|
||||||
PUBLIC "${CMAKE_SOURCE_DIR}/include/dnode/vnode/tq"
|
|
||||||
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(
|
|
||||||
tq
|
|
||||||
PUBLIC wal
|
|
||||||
PUBLIC os
|
|
||||||
PUBLIC util
|
|
||||||
PUBLIC common
|
|
||||||
PUBLIC transport
|
|
||||||
)
|
|
||||||
|
|
||||||
if(${BUILD_TEST})
|
|
||||||
add_subdirectory(test)
|
|
||||||
endif(${BUILD_TEST})
|
|
|
@ -1,34 +0,0 @@
|
||||||
aux_source_directory(src TSDB_SRC)
|
|
||||||
if(0)
|
|
||||||
add_library(tsdb ${TSDB_SRC})
|
|
||||||
else(0)
|
|
||||||
add_library(tsdb STATIC "")
|
|
||||||
target_sources(tsdb
|
|
||||||
PRIVATE
|
|
||||||
"src/tsdbCommit.c"
|
|
||||||
"src/tsdbMain.c"
|
|
||||||
"src/tsdbMemTable.c"
|
|
||||||
"src/tsdbOptions.c"
|
|
||||||
"src/tsdbWrite.c"
|
|
||||||
"src/tsdbReadImpl.c"
|
|
||||||
"src/tsdbFile.c"
|
|
||||||
"src/tsdbFS.c"
|
|
||||||
"src/tsdbRead.c"
|
|
||||||
)
|
|
||||||
endif(0)
|
|
||||||
|
|
||||||
target_include_directories(
|
|
||||||
tsdb
|
|
||||||
PUBLIC "${CMAKE_SOURCE_DIR}/include/dnode/vnode/tsdb"
|
|
||||||
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(
|
|
||||||
tsdb
|
|
||||||
PUBLIC os
|
|
||||||
PUBLIC util
|
|
||||||
PUBLIC common
|
|
||||||
PUBLIC tkv
|
|
||||||
PUBLIC tfs
|
|
||||||
PUBLIC meta
|
|
||||||
)
|
|
|
@ -1,24 +0,0 @@
|
||||||
aux_source_directory(src VNODE_SRC)
|
|
||||||
add_library(vnode STATIC ${VNODE_SRC})
|
|
||||||
target_include_directories(
|
|
||||||
vnode
|
|
||||||
PUBLIC "${CMAKE_SOURCE_DIR}/include/dnode/vnode"
|
|
||||||
private "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
|
||||||
)
|
|
||||||
target_link_libraries(
|
|
||||||
vnode
|
|
||||||
PUBLIC os
|
|
||||||
PUBLIC transport
|
|
||||||
PUBLIC meta
|
|
||||||
PUBLIC tq
|
|
||||||
PUBLIC tsdb
|
|
||||||
PUBLIC wal
|
|
||||||
PUBLIC sync
|
|
||||||
PUBLIC cjson
|
|
||||||
PUBLIC qworker
|
|
||||||
)
|
|
||||||
|
|
||||||
# test
|
|
||||||
if(${BUILD_TEST})
|
|
||||||
# add_subdirectory(test)
|
|
||||||
endif(${BUILD_TEST})
|
|
|
@ -41,7 +41,7 @@ int vnodeInit(const SVnodeOpt *pOption) {
|
||||||
|
|
||||||
for (uint16_t i = 0; i < pOption->nthreads; i++) {
|
for (uint16_t i = 0; i < pOption->nthreads; i++) {
|
||||||
pthread_create(&(vnodeMgr.threads[i]), NULL, loop, NULL);
|
pthread_create(&(vnodeMgr.threads[i]), NULL, loop, NULL);
|
||||||
pthread_setname_np(vnodeMgr.threads[i], "VND Commit Thread");
|
// pthread_setname_np(vnodeMgr.threads[i], "VND Commit Thread");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO: if no commit thread is set, then another mechanism should be
|
// TODO: if no commit thread is set, then another mechanism should be
|
||||||
|
|
|
@ -1,119 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
||||||
*
|
|
||||||
* This program is free software: you can use, redistribute, and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License, version 3
|
|
||||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "vnodeDef.h"
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
static int vnodeBuildCreateTableReq(void **buf, const SVCreateTableReq *pReq);
|
|
||||||
static void *vnodeParseCreateTableReq(void *buf, SVCreateTableReq *pReq);
|
|
||||||
|
|
||||||
int vnodeBuildReq(void **buf, const SVnodeReq *pReq, tmsg_t type) {
|
|
||||||
int tsize = 0;
|
|
||||||
|
|
||||||
tsize += taosEncodeFixedU64(buf, pReq->ver);
|
|
||||||
switch (type) {
|
|
||||||
case TDMT_VND_CREATE_STB:
|
|
||||||
tsize += vnodeBuildCreateTableReq(buf, &(pReq->ctReq));
|
|
||||||
break;
|
|
||||||
case TDMT_VND_SUBMIT:
|
|
||||||
/* code */
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/* TODO */
|
|
||||||
return tsize;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *vnodeParseReq(void *buf, SVnodeReq *pReq, tmsg_t type) {
|
|
||||||
buf = taosDecodeFixedU64(buf, &(pReq->ver));
|
|
||||||
|
|
||||||
switch (type) {
|
|
||||||
case TDMT_VND_CREATE_STB:
|
|
||||||
buf = vnodeParseCreateTableReq(buf, &(pReq->ctReq));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int vnodeBuildCreateTableReq(void **buf, const SVCreateTableReq *pReq) {
|
|
||||||
int tsize = 0;
|
|
||||||
|
|
||||||
tsize += taosEncodeString(buf, pReq->name);
|
|
||||||
tsize += taosEncodeFixedU32(buf, pReq->ttl);
|
|
||||||
tsize += taosEncodeFixedU32(buf, pReq->keep);
|
|
||||||
tsize += taosEncodeFixedU8(buf, pReq->type);
|
|
||||||
|
|
||||||
switch (pReq->type) {
|
|
||||||
case META_SUPER_TABLE:
|
|
||||||
tsize += taosEncodeFixedU64(buf, pReq->stbCfg.suid);
|
|
||||||
tsize += tdEncodeSchema(buf, pReq->stbCfg.pSchema);
|
|
||||||
tsize += tdEncodeSchema(buf, pReq->stbCfg.pTagSchema);
|
|
||||||
break;
|
|
||||||
case META_CHILD_TABLE:
|
|
||||||
tsize += taosEncodeFixedU64(buf, pReq->ctbCfg.suid);
|
|
||||||
tsize += tdEncodeKVRow(buf, pReq->ctbCfg.pTag);
|
|
||||||
break;
|
|
||||||
case META_NORMAL_TABLE:
|
|
||||||
tsize += tdEncodeSchema(buf, pReq->ntbCfg.pSchema);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return tsize;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *vnodeParseCreateTableReq(void *buf, SVCreateTableReq *pReq) {
|
|
||||||
buf = taosDecodeString(buf, &(pReq->name));
|
|
||||||
buf = taosDecodeFixedU32(buf, &(pReq->ttl));
|
|
||||||
buf = taosDecodeFixedU32(buf, &(pReq->keep));
|
|
||||||
buf = taosDecodeFixedU8(buf, &(pReq->type));
|
|
||||||
|
|
||||||
switch (pReq->type) {
|
|
||||||
case META_SUPER_TABLE:
|
|
||||||
buf = taosDecodeFixedU64(buf, &(pReq->stbCfg.suid));
|
|
||||||
buf = tdDecodeSchema(buf, &(pReq->stbCfg.pSchema));
|
|
||||||
buf = tdDecodeSchema(buf, &(pReq->stbCfg.pTagSchema));
|
|
||||||
break;
|
|
||||||
case META_CHILD_TABLE:
|
|
||||||
buf = taosDecodeFixedU64(buf, &(pReq->ctbCfg.suid));
|
|
||||||
buf = tdDecodeKVRow(buf, &(pReq->ctbCfg.pTag));
|
|
||||||
break;
|
|
||||||
case META_NORMAL_TABLE:
|
|
||||||
buf = tdDecodeSchema(buf, &(pReq->ntbCfg.pSchema));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
int vnodeBuildDropTableReq(void **buf, const SVDropTbReq *pReq) {
|
|
||||||
// TODO
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *vnodeParseDropTableReq(void *buf, SVDropTbReq *pReq) {
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
||||||
*
|
|
||||||
* This program is free software: you can use, redistribute, and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License, version 3
|
|
||||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
Loading…
Reference in New Issue