From 12c6ea282b6837ddb5cc25dfb79e25f723aecc98 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 3 Nov 2021 11:13:17 +0800 Subject: [PATCH] refact --- .../server/vnode/tsdb/impl/tsdbImpl.h | 15 +++-- include/server/vnode/tsdb/tsdb.h | 63 +++---------------- source/dnode/vnode/impl/src/vnodeCommit.c | 2 + .../vnode/tsdb/{src/tsdb.c => inc/tsdbDef.h} | 24 ++++--- source/dnode/vnode/tsdb/inc/tsdbMemTable.h | 46 -------------- .../tsdb/inc/{tsdbInt.h => tsdbOptions.h} | 6 +- source/dnode/vnode/tsdb/src/tsdbMain.c | 16 +++++ source/dnode/vnode/tsdb/src/tsdbMemTable.c | 49 --------------- .../tsdb/src/{tsdbSMA.c => tsdbOptions.c} | 2 +- 9 files changed, 54 insertions(+), 169 deletions(-) rename source/dnode/vnode/tsdb/inc/tsdbWriteBatch.h => include/server/vnode/tsdb/impl/tsdbImpl.h (74%) rename source/dnode/vnode/tsdb/{src/tsdb.c => inc/tsdbDef.h} (66%) delete mode 100644 source/dnode/vnode/tsdb/inc/tsdbMemTable.h rename source/dnode/vnode/tsdb/inc/{tsdbInt.h => tsdbOptions.h} (89%) create mode 100644 source/dnode/vnode/tsdb/src/tsdbMain.c delete mode 100644 source/dnode/vnode/tsdb/src/tsdbMemTable.c rename source/dnode/vnode/tsdb/src/{tsdbSMA.c => tsdbOptions.c} (99%) diff --git a/source/dnode/vnode/tsdb/inc/tsdbWriteBatch.h b/include/server/vnode/tsdb/impl/tsdbImpl.h similarity index 74% rename from source/dnode/vnode/tsdb/inc/tsdbWriteBatch.h rename to include/server/vnode/tsdb/impl/tsdbImpl.h index f6b761f6a5..15f611c703 100644 --- a/source/dnode/vnode/tsdb/inc/tsdbWriteBatch.h +++ b/include/server/vnode/tsdb/impl/tsdbImpl.h @@ -13,22 +13,21 @@ * along with this program. If not, see . */ -#ifndef _TD_TSDB_WRITE_BATCH_H_ -#define _TD_TSDB_WRITE_BATCH_H_ +#ifndef _TD_TSDB_IMPL_H_ +#define _TD_TSDB_IMPL_H_ + +#include "os.h" #ifdef __cplusplus extern "C" { #endif -typedef struct STsdbWriteBatch STsdbWriteBatch; - -/* ------------------------- ------------------------- */ -struct STsdbWriteBatch { - // TODO +struct STsdbOptions { + /* TODO */ }; #ifdef __cplusplus } #endif -#endif /*_TD_TSDB_WRITE_BATCH_H_*/ \ No newline at end of file +#endif /*_TD_TSDB_IMPL_H_*/ \ No newline at end of file diff --git a/include/server/vnode/tsdb/tsdb.h b/include/server/vnode/tsdb/tsdb.h index 09cebc7bb6..949ac679ae 100644 --- a/include/server/vnode/tsdb/tsdb.h +++ b/include/server/vnode/tsdb/tsdb.h @@ -16,67 +16,24 @@ #ifndef _TD_TSDB_H_ #define _TD_TSDB_H_ -#include "os.h" -#include "taosmsg.h" +#include "impl/tsdbImpl.h" #ifdef __cplusplus extern "C" { #endif -// Types exported -typedef struct STsdb STsdb; -typedef struct STsdbOptions STsdbOptions; -typedef struct STsdbSMAOptions STsdbSMAOptions; // SMA stands for Small Materialized Aggregation -typedef struct STsdbReadOptions STsdbReadOptions; -typedef struct STsdbSnapshot STsdbSnapshot; -typedef struct STsdbQueryHandle STsdbQueryHandle; +// TYPES EXPOSED +typedef struct STsdb STsdb; +typedef struct STsdbOptions STsdbOptions; -// DB operations -int tsdbCreate(const char *path); -int tsdbDestroy(const char *path); -STsdb *tsdbOpen(const STsdbOptions *options); +// STsdb +STsdb *tsdbOpen(const char *path, const STsdbOptions *); void tsdbClose(STsdb *); -int tsdbReset(STsdb *, const STsdbOptions *); -int tsdbInsert(STsdb *, SSubmitReq *, SSubmitRsp *); -int tsdbCommit(STsdb *); -int tsdbCompact(STsdb *); +void tsdbRemove(const char *path); -// Options -STsdbOptions *tsdbOptionsCreate(); -void tsdbOptionsDestroy(STsdbOptions *); -void tsdbOptionsSetId(STsdbOptions *, int id); -void tsdbOptionsSetHoursPerFile(STsdbOptions *, int hours); -void tsdbOptionsSetRetention(STsdbOptions *, int keep, int keep1, int keep2); -void tsdbOptionsSetMinAndMaxRows(STsdbOptions *, int minRows, int maxRows); -void tsdbOptionsSetPrecision(STsdbOptions *, int); -void tsdbOptionsSetCache(STsdbOptions *, int); -typedef enum { TSDB_NO_UPDATE = 0, TSDB_WHOLE_ROW_UPDATE = 1, TSDB_PARTIAL_ROW_UPDATE = 2 } ETsdbUpdateType; -void tsdbOptionsSetUpdate(STsdbOptions *, ETsdbUpdateType); -void tsdbOptionsSetSMA(STsdbOptions *, STsdbSMAOptions *); - -// STsdbSMAOptions -STsdbSMAOptions *tsdbSMAOptionsCreate(); -void tsdbSMAOptionsDestroy(STsdbSMAOptions *); -// void tsdbSMAOptionsSetFuncs(STsdbSMAOptions *, SArray * /*Array of function to perform on each block*/); -// void tsdbSMAOptionsSetIntervals(STsdbSMAOptions *, SArray *); -// void tsdbSMAOptionsSetColTypes(STsdbSMAOptions *, SArray *); - -// STsdbQueryHandle -STsdbQueryHandle *tsdbQueryHandleCreate(STsdb *, STsdbReadOptions *); -void tsdbQueryHandleDestroy(STsdbQueryHandle *); -void tsdbResetQueryHandle(STsdbQueryHandle *, STsdbReadOptions *); -bool tsdbNextDataBlock(STsdbQueryHandle *); -// void tsdbGetDataBlockInfo(STsdbQueryHandle *, SDataBlockInfo *); -// void tsdbGetDataBlockStatisInfo(STsdbQueryHandle *, SDataStatis **); - -// STsdbReadOptions -STsdbReadOptions *tsdbReadOptionsCreate(); -void tsdbReadOptionsDestroy(STsdbReadOptions *); -void tsdbReadOptionsSetSnapshot(STsdbReadOptions *, STsdbSnapshot *); - -// STsdbSnapshot -STsdbSnapshot *tsdbSnapshotCreate(STsdb *); -void tsdbSnapshotDestroy(STsdbSnapshot *); +// STsdbOptions +int tsdbOptionsInit(STsdbOptions *); +void tsdbOptionsClear(STsdbOptions *); #ifdef __cplusplus } diff --git a/source/dnode/vnode/impl/src/vnodeCommit.c b/source/dnode/vnode/impl/src/vnodeCommit.c index 3200411f4d..826589e8c9 100644 --- a/source/dnode/vnode/impl/src/vnodeCommit.c +++ b/source/dnode/vnode/impl/src/vnodeCommit.c @@ -19,6 +19,7 @@ static int vnodeStartCommit(SVnode *pVnode); static int vnodeEndCommit(SVnode *pVnode); int vnodeAsyncCommit(SVnode *pVnode) { + #if 0 if (vnodeStartCommit(pVnode) < 0) { // TODO } @@ -39,6 +40,7 @@ int vnodeAsyncCommit(SVnode *pVnode) { // TODO } +#endif return 0; } diff --git a/source/dnode/vnode/tsdb/src/tsdb.c b/source/dnode/vnode/tsdb/inc/tsdbDef.h similarity index 66% rename from source/dnode/vnode/tsdb/src/tsdb.c rename to source/dnode/vnode/tsdb/inc/tsdbDef.h index 520c342a63..ebe0d6b4b0 100644 --- a/source/dnode/vnode/tsdb/src/tsdb.c +++ b/source/dnode/vnode/tsdb/inc/tsdbDef.h @@ -13,17 +13,23 @@ * along with this program. If not, see . */ +#ifndef _TD_TSDB_DEF_H_ +#define _TD_TSDB_DEF_H_ + #include "tsdb.h" -#include "tkv.h" -#include "tsdbMemTable.h" +#include "tsdbOptions.h" + +#ifdef __cplusplus +extern "C" { +#endif -/* -------------- -------------- */ struct STsdb { - STkvDb *tsdb; // original time-series data - STkvDb *lrowdb; // last row cache - STkvDb *lastdb; // last cache - STkvDb *fivemindb; + char * path; + STsdbOptions options; }; -int tsdbInsert(STsdb *tsdb, SSubmitReq *pReq, SSubmitRsp *pRsp) { return 0; } -int tsdbCommit(STsdb *pTsdb) { return 0; } \ No newline at end of file +#ifdef __cplusplus +} +#endif + +#endif /*_TD_TSDB_DEF_H_*/ \ No newline at end of file diff --git a/source/dnode/vnode/tsdb/inc/tsdbMemTable.h b/source/dnode/vnode/tsdb/inc/tsdbMemTable.h deleted file mode 100644 index 5d1dcfcac7..0000000000 --- a/source/dnode/vnode/tsdb/inc/tsdbMemTable.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2019 TAOS Data, Inc. - * - * 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 . - */ - -#ifndef _TD_TSDB_MEMTABLE_H_ -#define _TD_TSDB_MEMTABLE_H_ - -#include "tdef.h" -#include "thash.h" -#include "amalloc.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct STsdbMemTable STsdbMemTable; - -STsdbMemTable *tsdbMemTableCreate(SMemAllocator *); -void tsdbMemTableDestroy(STsdbMemTable *); -int tsdbMemTableWriteBatch(STsdbMemTable *pTsdbMemTable, void *batch); - -/* --------------------- For compile and test only --------------------- */ -struct STsdbMemTable { - TSKEY minKey; - TSKEY maxKey; - SHashObj * tData; // uid --> SSkipList - SMemAllocator *ma; - T_REF_DECLARE() -}; - -#ifdef __cplusplus -} -#endif - -#endif /*_TD_TSDB_MEMTABLE_H_*/ \ No newline at end of file diff --git a/source/dnode/vnode/tsdb/inc/tsdbInt.h b/source/dnode/vnode/tsdb/inc/tsdbOptions.h similarity index 89% rename from source/dnode/vnode/tsdb/inc/tsdbInt.h rename to source/dnode/vnode/tsdb/inc/tsdbOptions.h index b9ee525a9d..4d6a250424 100644 --- a/source/dnode/vnode/tsdb/inc/tsdbInt.h +++ b/source/dnode/vnode/tsdb/inc/tsdbOptions.h @@ -13,8 +13,8 @@ * along with this program. If not, see . */ -#ifndef _TD_TSDB_INT_H_ -#define _TD_TSDB_INT_H_ +#ifndef _TD_TSDB_OPTIONS_H_ +#define _TD_TSDB_OPTIONS_H_ #ifdef __cplusplus extern "C" { @@ -24,4 +24,4 @@ extern "C" { } #endif -#endif /*_TD_TSDB_INT_H_*/ \ No newline at end of file +#endif /*_TD_TSDB_OPTIONS_H_*/ \ No newline at end of file diff --git a/source/dnode/vnode/tsdb/src/tsdbMain.c b/source/dnode/vnode/tsdb/src/tsdbMain.c new file mode 100644 index 0000000000..61e887dd45 --- /dev/null +++ b/source/dnode/vnode/tsdb/src/tsdbMain.c @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * 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 . + */ + +#include "tsdbDef.h" \ No newline at end of file diff --git a/source/dnode/vnode/tsdb/src/tsdbMemTable.c b/source/dnode/vnode/tsdb/src/tsdbMemTable.c deleted file mode 100644 index 9fd815155f..0000000000 --- a/source/dnode/vnode/tsdb/src/tsdbMemTable.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2019 TAOS Data, Inc. - * - * 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 . - */ - -#include "tsdbMemTable.h" - -STsdbMemTable *tsdbMemTableCreate(SMemAllocator *ma) { - STsdbMemTable *pTsdbMemTable = NULL; - - pTsdbMemTable = (STsdbMemTable *)malloc(sizeof(*pTsdbMemTable)); - if (pTsdbMemTable == NULL) { - return NULL; - } - - // TODO - pTsdbMemTable->minKey = TSKEY_INITIAL_VAL; - pTsdbMemTable->maxKey = TSKEY_INITIAL_VAL; - pTsdbMemTable->ma = ma; - pTsdbMemTable->tData = taosHashInit(1024, taosIntHash_64, true /* TODO */, HASH_NO_LOCK); - if (pTsdbMemTable->tData == NULL) { - // TODO - } - - return pTsdbMemTable; -} - -void tsdbMemTableDestroy(STsdbMemTable *pTsdbMemTable) { - if (pTsdbMemTable) { - // TODO - free(pTsdbMemTable); - } -} - -int tsdbMemTableWriteBatch(STsdbMemTable *pTsdbMemTable, void *batch) { - // TODO - - return 0; -} \ No newline at end of file diff --git a/source/dnode/vnode/tsdb/src/tsdbSMA.c b/source/dnode/vnode/tsdb/src/tsdbOptions.c similarity index 99% rename from source/dnode/vnode/tsdb/src/tsdbSMA.c rename to source/dnode/vnode/tsdb/src/tsdbOptions.c index f2f48bbc8a..6dea4a4e57 100644 --- a/source/dnode/vnode/tsdb/src/tsdbSMA.c +++ b/source/dnode/vnode/tsdb/src/tsdbOptions.c @@ -11,4 +11,4 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . - */ + */ \ No newline at end of file -- GitLab