diff --git a/source/dnode/vnode/CMakeLists.txt b/source/dnode/vnode/CMakeLists.txt index d7fcbcb31c..4e4163f135 100644 --- a/source/dnode/vnode/CMakeLists.txt +++ b/source/dnode/vnode/CMakeLists.txt @@ -55,7 +55,7 @@ target_sources( "src/tsdb/tsdbMergeTree.c" "src/tsdb/tsdbDataIter.c" # # dev - "src/tsdb/dev/tsdbCommit2.c" + "src/tsdb/dev/tsdbCommit.c" "src/tsdb/dev/tsdbMerge.c" "src/tsdb/dev/tsdbSttFWriter.c" diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbCommit2.c b/source/dnode/vnode/src/tsdb/dev/tsdbCommit.c similarity index 100% rename from source/dnode/vnode/src/tsdb/dev/tsdbCommit2.c rename to source/dnode/vnode/src/tsdb/dev/tsdbCommit.c diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbFS.c b/source/dnode/vnode/src/tsdb/dev/tsdbFS.c new file mode 100644 index 0000000000..6dea4a4e57 --- /dev/null +++ b/source/dnode/vnode/src/tsdb/dev/tsdbFS.c @@ -0,0 +1,14 @@ +/* + * 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 . + */ \ No newline at end of file diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbFS.h b/source/dnode/vnode/src/tsdb/dev/tsdbFS.h new file mode 100644 index 0000000000..18712d6dfa --- /dev/null +++ b/source/dnode/vnode/src/tsdb/dev/tsdbFS.h @@ -0,0 +1,33 @@ +/* + * 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 _TSDB_FILE_SYSTEM_H +#define _TSDB_FILE_SYSTEM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Exposed Handle */ + +/* Exposed APIs */ + +/* Exposed Structs */ + +#ifdef __cplusplus +} +#endif + +#endif /*_TSDB_FILE_SYSTEM_H*/ \ No newline at end of file diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbFile.c b/source/dnode/vnode/src/tsdb/dev/tsdbFile.c new file mode 100644 index 0000000000..b2cf2cb391 --- /dev/null +++ b/source/dnode/vnode/src/tsdb/dev/tsdbFile.c @@ -0,0 +1,81 @@ +/* + * 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 "tsdbFile.h" + +typedef enum { + TSDB_FOP_CREATE = -2, // create a file + TSDB_FOP_EXTEND, // extend a file + TSDB_FOP_NONE, // no operation + TSDB_FOP_TRUNCATE, // truncate a file + TSDB_FOP_DELETE, // delete a file + TSDB_FOP_MAX, +} tsdb_fop_t; + +typedef enum { + TSDB_FTYPE_NONE = 0, // no file type + TSDB_FTYPE_STT, // .stt + TSDB_FTYPE_HEAD, // .head + TSDB_FTYPE_DATA, // .data + TSDB_FTYPE_SMA, // .sma + TSDB_FTYPE_TOMB, // .tomb +} tsdb_ftype_t; + +typedef struct SFStt { + int64_t cid; + int64_t offset; +} SFStt; + +typedef struct SFHead { + // TODO +} SFHead; + +typedef struct SFData { + // TODO +} SFData; + +typedef struct SFSma { + // TODO +} SFSma; + +typedef struct SFTomb { + // TODO +} SFTomb; + +struct STFile { + SDiskID diskId; + tsdb_ftype_t type; + int64_t size; + union { + SFStt fstt; + SFHead fhead; + SFData fdata; + SFSma fsma; + SFTomb ftomb; + }; +}; + +struct SFileObj { + volatile int32_t nRef; + STFile file; +}; + +struct SFileOp { + tsdb_fop_t op; + union { + struct { + } create; + }; +}; \ No newline at end of file diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbFile.h b/source/dnode/vnode/src/tsdb/dev/tsdbFile.h new file mode 100644 index 0000000000..c3000fb239 --- /dev/null +++ b/source/dnode/vnode/src/tsdb/dev/tsdbFile.h @@ -0,0 +1,38 @@ +/* + * 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 _TSDB_FILE_H +#define _TSDB_FILE_H + +#include "tsdb.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Exposed Handle */ +typedef struct STFile STFile; +typedef struct SFileObj SFileObj; +typedef struct SFileOp SFileOp; + +/* Exposed APIs */ + +/* Exposed Structs */ + +#ifdef __cplusplus +} +#endif + +#endif /*_TSDB_FILE_H*/ \ No newline at end of file