refact
This commit is contained in:
parent
dfa65623f4
commit
6c3b627e54
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* 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_TAOS_MSG_H_
|
||||
#define _TD_TAOS_MSG_H_
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SSubmitReq;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SSubmitRsp;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SSubmitReqReader;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SCreateTableReq;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SCreateTableRsp;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SDropTableReq;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SDropTableRsp;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SAlterTableReq;
|
||||
|
||||
typedef struct {
|
||||
/* data */
|
||||
} SAlterTableRsp;
|
||||
|
||||
#endif /*_TD_TAOS_MSG_H_*/
|
|
@ -20,6 +20,10 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct SMeta SMeta;
|
||||
|
||||
int metaCommit(SMeta *pMeta);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -20,6 +20,11 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct STQ STQ;
|
||||
|
||||
int tqPushMsg(void *);
|
||||
int tqCommit(STQ *pTQ);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#define _TD_TSDB_H_
|
||||
|
||||
#include "os.h"
|
||||
#include "taosMsg.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -47,7 +48,7 @@ int tsdbCloseRepo(STsdb *pTsdb);
|
|||
int tsdbForceCloseRepo(STsdb *pTsdb);
|
||||
|
||||
// Data commit
|
||||
int tsdbInsert(STsdb *pTsdb, SSubmitMsg *pMsg);
|
||||
int tsdbInsert(STsdb *pTsdb, SSubmitReq *pMsg);
|
||||
int tsdbCommit(STsdb *pTsdb);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -9,9 +9,11 @@ target_include_directories(
|
|||
PUBLIC "${CMAKE_SOURCE_DIR}/include/server/vnode"
|
||||
private "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
||||
)
|
||||
target_include_directories(
|
||||
target_link_libraries(
|
||||
vnode
|
||||
PRIVATE meta
|
||||
PRIVATE tq
|
||||
PRIVATE tsdb
|
||||
PUBLIC meta
|
||||
PUBLIC tq
|
||||
PUBLIC tsdb
|
||||
PRIVATE os
|
||||
PRIVATE common
|
||||
)
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* 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_COMMIT_H_
|
||||
#define _TD_VNODE_COMMIT_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int vnodeAsyncCommit(SVnode *pVnode);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*_TD_VNODE_COMMIT_H_*/
|
|
@ -16,10 +16,21 @@
|
|||
#ifndef _TD_VNODE_INT_H_
|
||||
#define _TD_VNODE_INT_H_
|
||||
|
||||
#include "tq.h"
|
||||
#include "tsdb.h"
|
||||
#include "meta.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct SVnode {
|
||||
SMeta *pMeta;
|
||||
STsdb *pTsdb;
|
||||
STQ * pTQ;
|
||||
void * allocator; // TODO
|
||||
} SVnode;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* 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_MEM_ALLOCATOR_H_
|
||||
#define _TD_VNODE_MEM_ALLOCATOR_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*_TD_VNODE_MEM_ALLOCATOR_H_*/
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* 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_WRITE_H_
|
||||
#define _TD_VNODE_WRITE_H_
|
||||
|
||||
int vnodeProcessSubmitReq(SVnode *pVnode, SSubmitReq *pReq, SSubmitRsp *pRsp);
|
||||
|
||||
#endif /*_TD_VNODE_WRITE_H_*/
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* 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 "vnodeInt.h"
|
||||
|
||||
static int vnodeStartCommit(SVnode *pVnode);
|
||||
static int vnodeEndCommit(SVnode *pVnode);
|
||||
|
||||
int vnodeAsyncCommit(SVnode *pVnode) {
|
||||
if (vnodeStartCommit(pVnode) < 0) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
if (tqCommit(pVnode->pTQ) < 0) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
if (metaCommit(pVnode->pMeta) < 0) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
if (tsdbCommit(pVnode->pTsdb) < 0) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
if (vnodeEndCommit(pVnode) < 0) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vnodeStartCommit(SVnode *pVnode) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vnodeEndCommit(SVnode *pVnode) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* 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/>.
|
||||
*/
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* 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 "vnodeInt.h"
|
||||
|
||||
int vnodeProcessSubmitReq(SVnode *pVnode, SSubmitReq *pReq, SSubmitRsp *pRsp) {
|
||||
// TODO: Check inputs
|
||||
|
||||
#if 1
|
||||
void *pMem = NULL;
|
||||
if ((pMem = aMalloc(pVnode->allocator, REQ_SIZE(pReq))) == NULL) {
|
||||
// No more memory to allocate, schedule an async commit
|
||||
// and continue
|
||||
vnodeAsyncCommit(pVnode);
|
||||
|
||||
// Reset allocator and allocat more
|
||||
vnodeResetAllocator(pVnode);
|
||||
pMem = aMalloc(pVnode->allocator, REQ_SIZE(pReq));
|
||||
if (pMem == NULL) {
|
||||
// TODO: handle the error
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: if SSubmitReq is compressed or encoded, we need to decode the request
|
||||
memcpy(pMem, pReq, REQ_SIZE(pReq));
|
||||
|
||||
if (tqPushMsg((SSubmitReq *)pReq) < 0) {
|
||||
// TODO: handle error
|
||||
}
|
||||
|
||||
SSubmitReqReader reader;
|
||||
taosInitSubmitReqReader(&reader, (SSubmitReq *)pMem);
|
||||
|
||||
if (tsdbInsertData((SSubmitReq *)pMem) < 0) {
|
||||
// TODO: handler error
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vnodeProcessCreateTableReq(SVnode *pVnode, SCreateTableReq *pReq, SCreateTableRsp *pRsp) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vnodeProcessDropTableReq(SVnode *pVnode, SDropTableReq *pReq, SDropTableRsp *pRsp) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vnodeProcessAlterTableReq(SVnode *pVnode, SDropTableReq *pReq, SDropTableRsp *pRsp) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
|
@ -8,4 +8,5 @@ target_include_directories(
|
|||
target_include_directories(
|
||||
tsdb
|
||||
PRIVATE os
|
||||
PRIVATE common
|
||||
)
|
Loading…
Reference in New Issue