diff --git a/include/libs/tkv/tkv.h b/include/libs/tkv/tkv.h index edade1dc3641250ecfe71670faa6cc5c0132b14f..98194f090c0e86f18b8d95cfb9383192caf3ac9c 100644 --- a/include/libs/tkv/tkv.h +++ b/include/libs/tkv/tkv.h @@ -16,6 +16,7 @@ #ifndef _TD_TKV_H_ #define _TD_TKV_H_ +#if 0 #include "os.h" #ifdef __cplusplus @@ -59,4 +60,5 @@ void tkvWriteOptsDestroy(STkvWriteOpts *); } #endif +#endif #endif /*_TD_TKV_H_*/ \ No newline at end of file diff --git a/source/libs/tkv/CMakeLists.txt b/source/libs/tkv/CMakeLists.txt index 529b2703f740cbd133b46278a22f7e7ac038a4e7..0620e12f55b65fd4bca763e2f1f88123ebd93e81 100644 --- a/source/libs/tkv/CMakeLists.txt +++ b/source/libs/tkv/CMakeLists.txt @@ -8,10 +8,4 @@ target_include_directories( target_link_libraries( tkv PUBLIC os -) -if(${BUILD_WITH_ROCKSDB}) - target_link_libraries( - tkv - PUBLIC rocksdb - ) -endif(${BUILD_WITH_ROCKSDB}) +) \ No newline at end of file diff --git a/source/libs/tkv/inc/tkvDef.h b/source/libs/tkv/inc/tDiskMgr.h similarity index 60% rename from source/libs/tkv/inc/tkvDef.h rename to source/libs/tkv/inc/tDiskMgr.h index 7433b1a4dd5d52ee5fe715146a2635673957c325..43f5bca5824fbc3d5c17598640a8840d60ea6f70 100644 --- a/source/libs/tkv/inc/tkvDef.h +++ b/source/libs/tkv/inc/tDiskMgr.h @@ -13,46 +13,23 @@ * along with this program. If not, see . */ -#ifndef _TD_TKV_DEF_H_ -#define _TD_TKV_DEF_H_ - -#ifdef USE_ROCKSDB -#include -#endif +#ifndef _TD_TDISK_MGR_H_ +#define _TD_TDISK_MGR_H_ #ifdef __cplusplus extern "C" { #endif -struct STkvDb { -#ifdef USE_ROCKSDB - rocksdb_t *db; -#endif -}; -struct STkvOpts { -#ifdef USE_ROCKSDB - rocksdb_options_t *opts; -#endif -}; +#include "os.h" -struct STkvCache { - // TODO -}; +typedef struct SDiskMgr SDiskMgr; -struct STkvReadOpts { -#ifdef USE_ROCKSDB - rocksdb_readoptions_t *ropts; -#endif -}; - -struct STkvWriteOpts { -#ifdef USE_ROCKSDB - rocksdb_writeoptions_t *wopts; -#endif -}; +int tdmReadPage(int32_t pgid, char *pData); +int tdmWritePage(int32_t pgid, const char *pData); +int32_t tdmAllocPage(SDiskMgr *pDiskMgr); #ifdef __cplusplus } #endif -#endif /*_TD_TKV_DEF_H_*/ \ No newline at end of file +#endif /*_TD_TDISK_MGR_H_*/ \ No newline at end of file diff --git a/source/libs/tkv/inc/tkvRocksdb.h b/source/libs/tkv/inc/tkvMacro.h similarity index 89% rename from source/libs/tkv/inc/tkvRocksdb.h rename to source/libs/tkv/inc/tkvMacro.h index 658deb335f5d69e56542dcac67e5c482285278be..6e3458c0215569810bddf9ccfb89c73acb487580 100644 --- a/source/libs/tkv/inc/tkvRocksdb.h +++ b/source/libs/tkv/inc/tkvMacro.h @@ -13,8 +13,8 @@ * along with this program. If not, see . */ -#ifndef _TD_TVK_ROCKSDB_H_ -#define _TD_TVK_ROCKSDB_H_ +#ifndef _TD_TKV_MACRO_H_ +#define _TD_TKV_MACRO_H_ #ifdef __cplusplus extern "C" { @@ -24,4 +24,4 @@ extern "C" { } #endif -#endif /*_TD_TVK_ROCKSDB_H_*/ \ No newline at end of file +#endif /*_TD_TKV_MACRO_H_*/ \ No newline at end of file diff --git a/source/libs/tkv/src/tkvRocksdb.c b/source/libs/tkv/src/tDiskMgr.c similarity index 71% rename from source/libs/tkv/src/tkvRocksdb.c rename to source/libs/tkv/src/tDiskMgr.c index 6dea4a4e57392be988126c579648f39a8270b9bf..916eaf66d65016407002e2de7b69accee8f890af 100644 --- a/source/libs/tkv/src/tkvRocksdb.c +++ b/source/libs/tkv/src/tDiskMgr.c @@ -11,4 +11,18 @@ * * 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 + */ + +#include "tDiskMgr.h" + +struct SDiskMgr { + const char *fname; + uint16_t pgsize; + int fd; +}; + +int tdmReadPage(int32_t pgid, char *pData) {} + +int tdmWritePage(int32_t pgid, const char *pData) {} + +int32_t tdmAllocPage(SDiskMgr *pDiskMgr) {} \ No newline at end of file diff --git a/source/libs/tkv/src/tkv.c b/source/libs/tkv/src/tkv.c deleted file mode 100644 index 0c6f896d56ef430a246546a2b96972d0f2e56fc9..0000000000000000000000000000000000000000 --- a/source/libs/tkv/src/tkv.c +++ /dev/null @@ -1,171 +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 "tkv.h" -#include "tkvDef.h" - -static pthread_once_t isInit = PTHREAD_ONCE_INIT; -static STkvReadOpts defaultReadOpts; -static STkvWriteOpts defaultWriteOpts; - -static void tkvInit(); - -STkvDb *tkvOpen(const STkvOpts *options, const char *path) { - pthread_once(&isInit, tkvInit); - STkvDb *pDb = NULL; - - pDb = (STkvDb *)malloc(sizeof(*pDb)); - if (pDb == NULL) { - return NULL; - } - -#ifdef USE_ROCKSDB - char *err = NULL; - - pDb->db = rocksdb_open(options->opts, path, &err); - // TODO: check err -#endif - - return pDb; -} - -void tkvClose(STkvDb *pDb) { - if (pDb) { -#ifdef USE_ROCKSDB - rocksdb_close(pDb->db); -#endif - free(pDb); - } -} - -void tkvPut(STkvDb *pDb, const STkvWriteOpts *pwopts, const char *key, size_t keylen, const char *val, size_t vallen) { -#ifdef USE_ROCKSDB - char *err = NULL; - rocksdb_put(pDb->db, pwopts ? pwopts->wopts : defaultWriteOpts.wopts, key, keylen, val, vallen, &err); - // TODO: check error -#endif -} - -char *tkvGet(STkvDb *pDb, const STkvReadOpts *propts, const char *key, size_t keylen, size_t *vallen) { - char *ret = NULL; - -#ifdef USE_ROCKSDB - char *err = NULL; - ret = rocksdb_get(pDb->db, propts ? propts->ropts : defaultReadOpts.ropts, key, keylen, vallen, &err); - // TODD: check error -#endif - - return ret; -} - -STkvOpts *tkvOptsCreate() { - STkvOpts *pOpts = NULL; - - pOpts = (STkvOpts *)malloc(sizeof(*pOpts)); - if (pOpts == NULL) { - return NULL; - } - -#ifdef USE_ROCKSDB - pOpts->opts = rocksdb_options_create(); - // TODO: check error -#endif - - return pOpts; -} - -void tkvOptsDestroy(STkvOpts *pOpts) { - if (pOpts) { -#ifdef USE_ROCKSDB - rocksdb_options_destroy(pOpts->opts); -#endif - free(pOpts); - } -} - -void tkvOptionsSetCache(STkvOpts *popts, STkvCache *pCache) { - // TODO -} - -void tkvOptsSetCreateIfMissing(STkvOpts *pOpts, unsigned char c) { -#ifdef USE_ROCKSDB - rocksdb_options_set_create_if_missing(pOpts->opts, c); -#endif -} - -STkvReadOpts *tkvReadOptsCreate() { - STkvReadOpts *pReadOpts = NULL; - - pReadOpts = (STkvReadOpts *)malloc(sizeof(*pReadOpts)); - if (pReadOpts == NULL) { - return NULL; - } - -#ifdef USE_ROCKSDB - pReadOpts->ropts = rocksdb_readoptions_create(); -#endif - - return pReadOpts; -} - -void tkvReadOptsDestroy(STkvReadOpts *pReadOpts) { - if (pReadOpts) { -#ifdef USE_ROCKSDB - rocksdb_readoptions_destroy(pReadOpts->ropts); -#endif - free(pReadOpts); - } -} - -STkvWriteOpts *tkvWriteOptsCreate() { - STkvWriteOpts *pWriteOpts = NULL; - - pWriteOpts = (STkvWriteOpts *)malloc(sizeof(*pWriteOpts)); - if (pWriteOpts == NULL) { - return NULL; - } - -#ifdef USE_ROCKSDB - pWriteOpts->wopts = rocksdb_writeoptions_create(); -#endif - - return pWriteOpts; -} - -void tkvWriteOptsDestroy(STkvWriteOpts *pWriteOpts) { - if (pWriteOpts) { -#ifdef USE_ROCKSDB - rocksdb_writeoptions_destroy(pWriteOpts->wopts); -#endif - free(pWriteOpts); - } -} - -/* ------------------------ STATIC METHODS ------------------------ */ -static void tkvInit() { -#ifdef USE_ROCKSDB - defaultReadOpts.ropts = rocksdb_readoptions_create(); - defaultWriteOpts.wopts = rocksdb_writeoptions_create(); - rocksdb_writeoptions_disable_WAL(defaultWriteOpts.wopts, true); - -#endif -} - -static void tkvClear() { -#ifdef USE_ROCKSDB - rocksdb_readoptions_destroy(defaultReadOpts.ropts); - rocksdb_writeoptions_destroy(defaultWriteOpts.wopts); -#endif -}