refact
This commit is contained in:
parent
1f2f6a7b18
commit
12c6ea282b
|
@ -13,22 +13,21 @@
|
||||||
* 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_TSDB_WRITE_BATCH_H_
|
#ifndef _TD_TSDB_IMPL_H_
|
||||||
#define _TD_TSDB_WRITE_BATCH_H_
|
#define _TD_TSDB_IMPL_H_
|
||||||
|
|
||||||
|
#include "os.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct STsdbWriteBatch STsdbWriteBatch;
|
struct STsdbOptions {
|
||||||
|
/* TODO */
|
||||||
/* ------------------------- ------------------------- */
|
|
||||||
struct STsdbWriteBatch {
|
|
||||||
// TODO
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*_TD_TSDB_WRITE_BATCH_H_*/
|
#endif /*_TD_TSDB_IMPL_H_*/
|
|
@ -16,67 +16,24 @@
|
||||||
#ifndef _TD_TSDB_H_
|
#ifndef _TD_TSDB_H_
|
||||||
#define _TD_TSDB_H_
|
#define _TD_TSDB_H_
|
||||||
|
|
||||||
#include "os.h"
|
#include "impl/tsdbImpl.h"
|
||||||
#include "taosmsg.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Types exported
|
// TYPES EXPOSED
|
||||||
typedef struct STsdb STsdb;
|
typedef struct STsdb STsdb;
|
||||||
typedef struct STsdbOptions STsdbOptions;
|
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;
|
|
||||||
|
|
||||||
// DB operations
|
// STsdb
|
||||||
int tsdbCreate(const char *path);
|
STsdb *tsdbOpen(const char *path, const STsdbOptions *);
|
||||||
int tsdbDestroy(const char *path);
|
|
||||||
STsdb *tsdbOpen(const STsdbOptions *options);
|
|
||||||
void tsdbClose(STsdb *);
|
void tsdbClose(STsdb *);
|
||||||
int tsdbReset(STsdb *, const STsdbOptions *);
|
void tsdbRemove(const char *path);
|
||||||
int tsdbInsert(STsdb *, SSubmitReq *, SSubmitRsp *);
|
|
||||||
int tsdbCommit(STsdb *);
|
|
||||||
int tsdbCompact(STsdb *);
|
|
||||||
|
|
||||||
// Options
|
// STsdbOptions
|
||||||
STsdbOptions *tsdbOptionsCreate();
|
int tsdbOptionsInit(STsdbOptions *);
|
||||||
void tsdbOptionsDestroy(STsdbOptions *);
|
void tsdbOptionsClear(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 *);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ static int vnodeStartCommit(SVnode *pVnode);
|
||||||
static int vnodeEndCommit(SVnode *pVnode);
|
static int vnodeEndCommit(SVnode *pVnode);
|
||||||
|
|
||||||
int vnodeAsyncCommit(SVnode *pVnode) {
|
int vnodeAsyncCommit(SVnode *pVnode) {
|
||||||
|
#if 0
|
||||||
if (vnodeStartCommit(pVnode) < 0) {
|
if (vnodeStartCommit(pVnode) < 0) {
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
@ -39,6 +40,7 @@ int vnodeAsyncCommit(SVnode *pVnode) {
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,17 +13,23 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tsdb.h"
|
#ifndef _TD_TSDB_DEF_H_
|
||||||
#include "tkv.h"
|
#define _TD_TSDB_DEF_H_
|
||||||
#include "tsdbMemTable.h"
|
|
||||||
|
#include "tsdb.h"
|
||||||
|
#include "tsdbOptions.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
/* -------------- -------------- */
|
|
||||||
struct STsdb {
|
struct STsdb {
|
||||||
STkvDb *tsdb; // original time-series data
|
char * path;
|
||||||
STkvDb *lrowdb; // last row cache
|
STsdbOptions options;
|
||||||
STkvDb *lastdb; // last cache
|
|
||||||
STkvDb *fivemindb;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int tsdbInsert(STsdb *tsdb, SSubmitReq *pReq, SSubmitRsp *pRsp) { return 0; }
|
#ifdef __cplusplus
|
||||||
int tsdbCommit(STsdb *pTsdb) { return 0; }
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*_TD_TSDB_DEF_H_*/
|
|
@ -1,46 +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_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_*/
|
|
|
@ -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_TSDB_INT_H_
|
#ifndef _TD_TSDB_OPTIONS_H_
|
||||||
#define _TD_TSDB_INT_H_
|
#define _TD_TSDB_OPTIONS_H_
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -24,4 +24,4 @@ extern "C" {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /*_TD_TSDB_INT_H_*/
|
#endif /*_TD_TSDB_OPTIONS_H_*/
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* 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 "tsdbDef.h"
|
|
@ -1,49 +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 "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;
|
|
||||||
}
|
|
|
@ -11,4 +11,4 @@
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
* 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/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
Loading…
Reference in New Issue