提交 8f539933 编写于 作者: D dapan1121

Merge remote-tracking branch 'origin/feature/vnode' into feature/qnode

...@@ -26,7 +26,8 @@ ...@@ -26,7 +26,8 @@
"eamodio.gitlens", "eamodio.gitlens",
"matepek.vscode-catch2-test-adapter", "matepek.vscode-catch2-test-adapter",
"spmeesseman.vscode-taskexplorer", "spmeesseman.vscode-taskexplorer",
"cschlosser.doxdocgen" "cschlosser.doxdocgen",
"urosvujosevic.explorer-manager"
], ],
// Use 'forwardPorts' to make a list of ports inside the container available locally. // Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [], // "forwardPorts": [],
......
...@@ -35,28 +35,26 @@ typedef struct SDnode SDnode; ...@@ -35,28 +35,26 @@ typedef struct SDnode SDnode;
typedef int32_t (*PutReqToVQueryQFp)(SDnode *pDnode, struct SRpcMsg *pReq); typedef int32_t (*PutReqToVQueryQFp)(SDnode *pDnode, struct SRpcMsg *pReq);
typedef struct SVnodeCfg { typedef struct SVnodeCfg {
int32_t vgId; int32_t vgId;
SDnode *pDnode; SDnode * pDnode;
struct { uint64_t wsize;
uint64_t wsize; uint64_t ssize;
uint64_t ssize; uint64_t lsize;
uint64_t lsize; bool isHeapAllocator;
bool isHeapAllocator;
};
uint32_t ttl; uint32_t ttl;
uint32_t keep; uint32_t keep;
bool isWeak; bool isWeak;
STsdbCfg tsdbCfg; STsdbCfg tsdbCfg;
SMetaCfg metaCfg; SMetaCfg metaCfg;
STqCfg tqCfg; STqCfg tqCfg;
SWalCfg walCfg; SWalCfg walCfg;
} SVnodeCfg; } SVnodeCfg;
typedef struct { typedef struct {
int32_t sver; int32_t sver;
char *timezone; char * timezone;
char *locale; char * locale;
char *charset; char * charset;
uint16_t nthreads; // number of commit threads. 0 for no threads and a schedule queue should be given (TODO) uint16_t nthreads; // number of commit threads. 0 for no threads and a schedule queue should be given (TODO)
PutReqToVQueryQFp putReqToVQueryQFp; PutReqToVQueryQFp putReqToVQueryQFp;
} SVnodeOpt; } SVnodeOpt;
......
...@@ -17,9 +17,11 @@ ...@@ -17,9 +17,11 @@
int tsdbInsertData(STsdb *pTsdb, SSubmitMsg *pMsg, SSubmitRsp *pRsp) { int tsdbInsertData(STsdb *pTsdb, SSubmitMsg *pMsg, SSubmitRsp *pRsp) {
// Check if mem is there. If not, create one. // Check if mem is there. If not, create one.
pTsdb->mem = tsdbNewMemTable(pTsdb);
if (pTsdb->mem == NULL) { if (pTsdb->mem == NULL) {
return -1; pTsdb->mem = tsdbNewMemTable(pTsdb);
if (pTsdb->mem == NULL) {
return -1;
}
} }
return tsdbMemTableInsert(pTsdb, pTsdb->mem, pMsg, NULL); return tsdbMemTableInsert(pTsdb, pTsdb->mem, pMsg, NULL);
} }
\ No newline at end of file
aux_source_directory(src TDB_SRC)
set(TDB_SUBDIRS "btree" "db" "hash" "mpool" "dmgr")
foreach(TDB_SUBDIR ${TDB_SUBDIRS})
aux_source_directory("src/${TDB_SUBDIR}" TDB_SRC)
endforeach()
add_library(tdb STATIC ${TDB_SRC}) add_library(tdb STATIC ${TDB_SRC})
# target_include_directories(
# tkv
# PUBLIC "${CMAKE_SOURCE_DIR}/include/libs/tkv"
# PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
# )
target_include_directories( target_include_directories(
tdb tdb
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/inc" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/inc"
...@@ -17,5 +18,5 @@ target_link_libraries( ...@@ -17,5 +18,5 @@ target_link_libraries(
) )
if(${BUILD_TEST}) if(${BUILD_TEST})
# add_subdirectory(test) add_subdirectory(test)
endif(${BUILD_TEST}) endif(${BUILD_TEST})
...@@ -22,10 +22,14 @@ ...@@ -22,10 +22,14 @@
extern "C" { extern "C" {
#endif #endif
#define TDB_EXTERN
#define TDB_PUBLIC
#define TDB_STATIC static
typedef enum { typedef enum {
TDB_BTREE = 0, TDB_BTREE_T = 0,
TDB_HASH, TDB_HASH_T,
TDB_HEAP, TDB_HEAP_T,
} tdb_db_t; } tdb_db_t;
// Forward declaration // Forward declaration
...@@ -39,9 +43,9 @@ typedef struct { ...@@ -39,9 +43,9 @@ typedef struct {
} TDB_KEY, TDB_VALUE; } TDB_KEY, TDB_VALUE;
// TDB Operations // TDB Operations
int tdbCreateDB(TDB** dbpp); TDB_EXTERN int tdbCreateDB(TDB** dbpp, tdb_db_t type);
int tdbOpenDB(TDB* dbp, tdb_db_t type, uint32_t flags); TDB_EXTERN int tdbOpenDB(TDB* dbp, uint32_t flags);
int tdbCloseDB(TDB* dbp, uint32_t flags); TDB_EXTERN int tdbCloseDB(TDB* dbp, uint32_t flags);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
/*
* 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 "tdbDB.h"
#include "tdb.h"
TDB_EXTERN int tdbCreateDB(TDB** dbpp, tdb_db_t type) {
TDB* dbp;
int ret;
dbp = calloc(1, sizeof(*dbp));
if (dbp == NULL) {
return -1;
}
dbp->pageSize = TDB_DEFAULT_PGSIZE;
dbp->type = type;
switch (type) {
case TDB_BTREE_T:
// ret = tdbInitBtreeDB(dbp);
// if (ret < 0) goto _err;
break;
case TDB_HASH_T:
// ret = tdbInitHashDB(dbp);
// if (ret < 0) goto _err;
break;
case TDB_HEAP_T:
// ret = tdbInitHeapDB(dbp);
// if (ret < 0) goto _err;
break;
default:
break;
}
*dbpp = dbp;
return 0;
_err:
if (dbp) {
free(dbp);
}
*dbpp = NULL;
return 0;
}
TDB_EXTERN int tdbOpenDB(TDB* dbp, uint32_t flags) {
// TODO
return 0;
}
TDB_EXTERN int tdbCloseDB(TDB* dbp, uint32_t flags) {
// TODO
return 0;
}
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#ifndef _TD_TDB_BTREE_H_ #ifndef _TD_TDB_BTREE_H_
#define _TD_TDB_BTREE_H_ #define _TD_TDB_BTREE_H_
#include "tkvDef.h" #include "tdbDef.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
...@@ -26,6 +26,8 @@ typedef struct { ...@@ -26,6 +26,8 @@ typedef struct {
pgid_t root; // root page number pgid_t root; // root page number
} TDB_BTREE; } TDB_BTREE;
TDB_PUBLIC int tdbInitBtreeDB(TDB *dbp);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
......
...@@ -16,20 +16,22 @@ ...@@ -16,20 +16,22 @@
#ifndef _TD_TDB_DB_H_ #ifndef _TD_TDB_DB_H_
#define _TD_TDB_DB_H_ #define _TD_TDB_DB_H_
#include "tdb.h"
#include "tdbBtree.h" #include "tdbBtree.h"
#include "tdbHash.h" #include "tdbHash.h"
#include "tdbHeap.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
struct TDB { struct TDB {
pgsize_t pageSize; pgsize_t pageSize;
tdb_db_t type; tdb_db_t type;
union { union {
TDB_BTREE btree; TDB_BTREE *btree;
TDB_HASH hash; TDB_HASH * hash;
TDB_HEAP * heap;
} dbam; // Different access methods } dbam; // Different access methods
}; };
......
...@@ -24,16 +24,17 @@ extern "C" { ...@@ -24,16 +24,17 @@ extern "C" {
// pgid_t // pgid_t
typedef int32_t pgid_t; typedef int32_t pgid_t;
#define TKV_IVLD_PGID ((pgid_t)-1) #define TDB_IVLD_PGID ((pgid_t)-1)
// framd_id_t // framd_id_t
typedef int32_t frame_id_t; typedef int32_t frame_id_t;
// pgsize_t // pgsize_t
typedef int32_t pgsize_t; typedef int32_t pgsize_t;
#define TKV_MIN_PGSIZE 512 #define TDB_MIN_PGSIZE 512
#define TKV_MAX_PGSIZE 16384 #define TDB_MAX_PGSIZE 16384
#define TKV_IS_PGSIZE_VLD(s) (((s) >= TKV_MIN_PGSIZE) && (TKV_MAX_PGSIZE <= TKV_MAX_PGSIZE)) #define TDB_DEFAULT_PGSIZE 4096
#define TDB_IS_PGSIZE_VLD(s) (((s) >= TKV_MIN_PGSIZE) && (TKV_MAX_PGSIZE <= TKV_MAX_PGSIZE))
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef _TD_TKV_HAHS_H_ #ifndef _TD_TDB_HASH_H_
#define _TD_TKV_HAHS_H_ #define _TD_TDB_HASH_H_
#include "tdbDef.h" #include "tdbDef.h"
...@@ -26,8 +26,10 @@ typedef struct { ...@@ -26,8 +26,10 @@ typedef struct {
// TODO // TODO
} TDB_HASH; } TDB_HASH;
TDB_PUBLIC int tdbInitHashDB(TDB *dbp);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /*_TD_TKV_HAHS_H_*/ #endif /*_TD_TDB_HASH_H_*/
\ No newline at end of file \ No newline at end of file
/*
* 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_TDB_HEAP_H_
#define _TD_TDB_HEAP_H_
#include "tdbDef.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
// TODO
} TDB_HEAP;
TDB_PUBLIC int tdbInitHeapDB(TDB *dbp);
#ifdef __cplusplus
}
#endif
#endif /*_TD_TDB_HEAP_H_*/
\ No newline at end of file
...@@ -6,9 +6,9 @@ TEST(tdb_api_test, tdb_create_open_close_db_test) { ...@@ -6,9 +6,9 @@ TEST(tdb_api_test, tdb_create_open_close_db_test) {
int ret; int ret;
TDB *dbp; TDB *dbp;
tdbCreateDB(&dbp); tdbCreateDB(&dbp, TDB_BTREE_T);
tdbOpenDB(dbp, TDB_BTREE, 0); tdbOpenDB(dbp, 0);
tdbCloseDB(dbp, 0); tdbCloseDB(dbp, 0);
} }
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册