From 3198baec272634f221529ad1ee0899b9e0657984 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Thu, 6 Feb 2020 10:58:52 +0800 Subject: [PATCH 1/3] more --- src/vnode/cache/inc/cache.h | 14 ++++++++++++ src/vnode/tsdb/inc/tsdb.h | 3 +++ src/vnode/tsdb/inc/tsdbMeta.h | 16 +++++++++++++ src/vnode/tsdb/src/tsdb.c | 42 +++++++++++++++++++++++++++++++++++ src/vnode/tsdb/src/tsdbMeta.c | 6 +++++ 5 files changed, 81 insertions(+) create mode 100644 src/vnode/cache/inc/cache.h create mode 100644 src/vnode/tsdb/inc/tsdbMeta.h diff --git a/src/vnode/cache/inc/cache.h b/src/vnode/cache/inc/cache.h new file mode 100644 index 0000000000..45b0e0c800 --- /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/tsdb/inc/tsdb.h b/src/vnode/tsdb/inc/tsdb.h index b523441450..2117c951ca 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 0000000000..27072a3003 --- /dev/null +++ b/src/vnode/tsdb/inc/tsdbMeta.h @@ -0,0 +1,16 @@ +/************************************ + * For internal usage + ************************************/ + +#include "tsdb.h" + +typedef struct STable +{ + STableId tid; + char *tableName; +} 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 e69de29bb2..911ee3bd94 100644 --- a/src/vnode/tsdb/src/tsdb.c +++ b/src/vnode/tsdb/src/tsdb.c @@ -0,0 +1,42 @@ +#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 + */ + void *pSTableDict; + + 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 e69de29bb2..2d13a2218d 100644 --- a/src/vnode/tsdb/src/tsdbMeta.c +++ b/src/vnode/tsdb/src/tsdbMeta.c @@ -0,0 +1,6 @@ +#include "tsdb.h" + +typedef struct STable +{ + /* data */ +}; From 2ad90daa5fddffe5d24dabff756cbf45476e18c6 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Thu, 6 Feb 2020 16:42:39 +0800 Subject: [PATCH 2/3] more --- src/vnode/tsdb/inc/tsdbMeta.h | 49 ++++++++++++++++++++++++++++++++--- src/vnode/tsdb/src/tsdb.c | 4 +++ src/vnode/tsdb/src/tsdbMeta.c | 4 --- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/vnode/tsdb/inc/tsdbMeta.h b/src/vnode/tsdb/inc/tsdbMeta.h index 27072a3003..9ab39171a6 100644 --- a/src/vnode/tsdb/inc/tsdbMeta.h +++ b/src/vnode/tsdb/inc/tsdbMeta.h @@ -4,10 +4,53 @@ #include "tsdb.h" -typedef struct STable -{ - STableId tid; +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 diff --git a/src/vnode/tsdb/src/tsdb.c b/src/vnode/tsdb/src/tsdb.c index 911ee3bd94..9d9fd64b06 100644 --- a/src/vnode/tsdb/src/tsdb.c +++ b/src/vnode/tsdb/src/tsdb.c @@ -34,6 +34,10 @@ typedef struct STSDBRepo */ void *pSTableDict; + /* File Store + */ + void *pFileStore; + pthread_mutext_t tsdbMutex; } STSDBRepo; diff --git a/src/vnode/tsdb/src/tsdbMeta.c b/src/vnode/tsdb/src/tsdbMeta.c index 2d13a2218d..c2a52c5026 100644 --- a/src/vnode/tsdb/src/tsdbMeta.c +++ b/src/vnode/tsdb/src/tsdbMeta.c @@ -1,6 +1,2 @@ #include "tsdb.h" -typedef struct STable -{ - /* data */ -}; From 68d4eb2c18e3d62c7dbc48d41566dd14a835f3ce Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Thu, 6 Feb 2020 17:23:12 +0800 Subject: [PATCH 3/3] more --- src/vnode/common/catalog/inc/schema.h | 18 ++++++++++++++++ src/vnode/common/catalog/inc/type.h | 30 +++++++++++++++++++++++++++ src/vnode/common/data/inc/data.h | 18 ++++++++++++++++ src/vnode/tsdb/src/tsdb.c | 1 + 4 files changed, 67 insertions(+) create mode 100644 src/vnode/common/catalog/inc/schema.h create mode 100644 src/vnode/common/catalog/inc/type.h create mode 100644 src/vnode/common/data/inc/data.h diff --git a/src/vnode/common/catalog/inc/schema.h b/src/vnode/common/catalog/inc/schema.h new file mode 100644 index 0000000000..89a048574c --- /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 0000000000..ed8d84a227 --- /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 0000000000..de9502e709 --- /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/src/tsdb.c b/src/vnode/tsdb/src/tsdb.c index 9d9fd64b06..50a46717f6 100644 --- a/src/vnode/tsdb/src/tsdb.c +++ b/src/vnode/tsdb/src/tsdb.c @@ -31,6 +31,7 @@ typedef struct STSDBRepo void *pTableDict; /* Map from super tableName->table + * TODO: may use dict */ void *pSTableDict;