diff --git a/src/vnode/cache/inc/cache.h b/src/vnode/cache/inc/cache.h new file mode 100644 index 0000000000000000000000000000000000000000..45b0e0c8007771dd4d0c27dd5a0e9c25026dc94e --- /dev/null +++ b/src/vnode/cache/inc/cache.h @@ -0,0 +1,14 @@ +#if !defined(_TD_CACHE_H_) +#define _TD_CACHE_H_ + +typedef void cache_pool_t; + +typedef struct SCacheBlock +{ + + SCacheBlock *next; +} SCacheBlock; + + + +#endif // _TD_CACHE_H_ diff --git a/src/vnode/common/catalog/inc/schema.h b/src/vnode/common/catalog/inc/schema.h new file mode 100644 index 0000000000000000000000000000000000000000..89a048574c959cabc0b5caf35e5a0d50beee6a6e --- /dev/null +++ b/src/vnode/common/catalog/inc/schema.h @@ -0,0 +1,18 @@ +#if !defined(_TD_SCHEMA_H_) +#define _TD_SCHEMA_H_ + +#include + +#include "type.h" + +typedef struct _scolumn { + td_datatype_t type; + int32_t bytes; +} SColumn; + +typedef struct SSchema { + int32_t numOfCols; + SColumn *columns; +} SSchema; + +#endif // _TD_SCHEMA_H_ diff --git a/src/vnode/common/catalog/inc/type.h b/src/vnode/common/catalog/inc/type.h new file mode 100644 index 0000000000000000000000000000000000000000..ed8d84a22785e4e51f2262a426c08c1240edccb2 --- /dev/null +++ b/src/vnode/common/catalog/inc/type.h @@ -0,0 +1,30 @@ +#if !defined(_TD_TYPE_H_) +#define _TD_TYPE_H_ + +typedef enum { + TD_DATATYPE_INVLD = 0, + TD_DATATYPE_BOOL, + TD_DATATYPE_TINYINT, + TD_DATATYPE_SMALLINT, + TD_DATATYPE_INT, + TD_DATATYPE_BIGINT, + TD_DATATYPE_FLOAT, + TD_DATATYPE_DOUBLE, + TD_DATATYPE_VARCHAR, + TD_DATATYPE_NCHAR, + TD_DATATYPE_BINARY +} td_datatype_t; + +// TODO: finish below +#define TD_DATATYPE_BOOL_NULL +#define TD_DATATYPE_TINYINT_NULL +#define TD_DATATYPE_SMALLINT_NULL +#define TD_DATATYPE_INT_NULL +#define TD_DATATYPE_BIGINT_NULL +#define TD_DATATYPE_FLOAT_NULL +#define TD_DATATYPE_DOUBLE_NULL +#define TD_DATATYPE_VARCHAR_NULL +#define TD_DATATYPE_NCHAR_NULL +#define TD_DATATYPE_BINARY_NULL + +#endif // _TD_TYPE_H_ diff --git a/src/vnode/common/data/inc/data.h b/src/vnode/common/data/inc/data.h new file mode 100644 index 0000000000000000000000000000000000000000..de9502e709e1efe19825aa5d1f1ba8c079567522 --- /dev/null +++ b/src/vnode/common/data/inc/data.h @@ -0,0 +1,18 @@ +#if !defined(_TD_DATA_H_) +#define _TD_DATA_H_ + +#include + +// ---- Row data interface +typedef struct { + int32_t numOfRows; + char * data; +} SRData; + +// ---- Column data interface +typedef struct { + int32_t numOfPoints; + char *data; +} SCData; + +#endif // _TD_DATA_H_ diff --git a/src/vnode/tsdb/inc/tsdb.h b/src/vnode/tsdb/inc/tsdb.h index b52344145074b7410b33e57a48db2e6a42c98b5b..2117c951ca8b74d1d850d92fc2cd418146c32a76 100644 --- a/src/vnode/tsdb/inc/tsdb.h +++ b/src/vnode/tsdb/inc/tsdb.h @@ -1,3 +1,6 @@ +/************************************** + * FOR OUTSIDE USAGE + **************************************/ #if !defined(_TD_TSDB_H_) #define _TD_TSDB_H_ diff --git a/src/vnode/tsdb/inc/tsdbMeta.h b/src/vnode/tsdb/inc/tsdbMeta.h new file mode 100644 index 0000000000000000000000000000000000000000..9ab39171a6ebce27bed7a60d1d6f9f4a76797149 --- /dev/null +++ b/src/vnode/tsdb/inc/tsdbMeta.h @@ -0,0 +1,59 @@ +/************************************ + * For internal usage + ************************************/ + +#include "tsdb.h" + +typedef enum { + TSDB_TABLE_NORMAL, + TSDB_TABLE_STABLE, + TSDB_TABLE_SUPER +} TSDB_TABLE_TYPE; + +// Below is the struct definition of super table +// TODO: May merge all table definitions +typedef struct _super_table { + int64_t uid; + char *tableName; + + int64_t createdTime; + + // TODO: try to merge the two schema into one + SSchema *pSchema; + SSchema *pTagSchema; + + // A index created for all tables created using this super table + SSkipList * pIndex; +} SSTable; + +// Normal table struct definition, table not +// created from super table +typedef struct SNTable +{ + tsdb_id_t tableId; + int64_t uid; + char *tableName; + + int64_t createdTime; + SSchema *pSchema +} SNTable; + +// Table created from super table +typedef struct STable { + tsdb_id_t tableId; + int64_t uid; + char *tableName; + + int64_t createdTime; + + // super table UID + int64_t stableUid; + + // Tag values for this table + char *pTagVal; +} STable; + +#define TSDB_GET_TABLE_ID(pTable) (((STable *)pTable)->tid).tableId +#define TSDB_GET_TABLE_UID(pTable) (((STable *)pTable)->tid).uid + +#define TSDB_IS_SUPER_TABLE(pTable) diff --git a/src/vnode/tsdb/src/tsdb.c b/src/vnode/tsdb/src/tsdb.c index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..50a46717f60b03d64a30470d27c78ee955ca373c 100644 --- a/src/vnode/tsdb/src/tsdb.c +++ b/src/vnode/tsdb/src/tsdb.c @@ -0,0 +1,47 @@ +#include +#include + +#include "tsdb.h" +#include "disk.h" +#include "cache.h" + +typedef struct STSDBRepo +{ + // TSDB configuration + STSDBcfg *pCfg; + + /* Disk tier handle for multi-tier storage + * + * The handle is responsible for dealing with object-oriented + * storage. + */ + SDiskTier *pDiskTier; + + /* Cache block list + */ + SCacheBlock *pCacheBloclList; + + /* Map from tableId-->STable + */ + STable *pTableList; + + /* Map from tableName->tableId + * TODO: may use dict + */ + void *pTableDict; + + /* Map from super tableName->table + * TODO: may use dict + */ + void *pSTableDict; + + /* File Store + */ + void *pFileStore; + + pthread_mutext_t tsdbMutex; + +} STSDBRepo; + +#define TSDB_GET_TABLE_BY_ID(pRepo, sid) (((STSDBRepo *)pRepo)->pTableList)[sid] +#define TSDB_GET_TABLE_BY_NAME(pRepo, name) diff --git a/src/vnode/tsdb/src/tsdbMeta.c b/src/vnode/tsdb/src/tsdbMeta.c index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c2a52c5026a35fea6c6404dbe4a384bcc7ec8736 100644 --- a/src/vnode/tsdb/src/tsdbMeta.c +++ b/src/vnode/tsdb/src/tsdbMeta.c @@ -0,0 +1,2 @@ +#include "tsdb.h" +