refact vnode
This commit is contained in:
parent
0c605acf46
commit
cc9496e5a0
|
@ -62,14 +62,24 @@ int vnodeValidateTableHash(SVnode *pVnode, char *tableFName);
|
||||||
|
|
||||||
// meta
|
// meta
|
||||||
typedef struct SMeta SMeta; // todo: remove
|
typedef struct SMeta SMeta; // todo: remove
|
||||||
typedef struct SMTbCursor SMTbCursor;
|
typedef struct SMetaReader SMetaReader;
|
||||||
|
typedef struct SMetaEntry SMetaEntry;
|
||||||
|
|
||||||
|
void metaReaderInit(SMetaReader *pReader, SVnode *pVnode, int32_t flags);
|
||||||
|
void metaReaderClear(SMetaReader *pReader);
|
||||||
|
int metaReadNext(SMetaReader *pReader);
|
||||||
|
const SMetaEntry *metaReaderGetEntry(SMetaReader *pReader);
|
||||||
|
|
||||||
typedef SVCreateTbReq STbCfg;
|
typedef SVCreateTbReq STbCfg;
|
||||||
typedef SVCreateTSmaReq SSmaCfg;
|
typedef SVCreateTSmaReq SSmaCfg;
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
typedef struct SMTbCursor SMTbCursor;
|
||||||
|
|
||||||
SMTbCursor *metaOpenTbCursor(SMeta *pMeta);
|
SMTbCursor *metaOpenTbCursor(SMeta *pMeta);
|
||||||
void metaCloseTbCursor(SMTbCursor *pTbCur);
|
void metaCloseTbCursor(SMTbCursor *pTbCur);
|
||||||
char *metaTbCursorNext(SMTbCursor *pTbCur);
|
char *metaTbCursorNext(SMTbCursor *pTbCur);
|
||||||
|
#endif
|
||||||
|
|
||||||
// tsdb
|
// tsdb
|
||||||
typedef struct STsdb STsdb;
|
typedef struct STsdb STsdb;
|
||||||
|
@ -167,6 +177,39 @@ typedef struct {
|
||||||
uint64_t uid;
|
uint64_t uid;
|
||||||
} STableKeyInfo;
|
} STableKeyInfo;
|
||||||
|
|
||||||
|
struct SMetaEntry {
|
||||||
|
int64_t version;
|
||||||
|
int8_t type;
|
||||||
|
tb_uid_t uid;
|
||||||
|
const char *name;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
SSchemaWrapper schema;
|
||||||
|
SSchemaWrapper schemaTag;
|
||||||
|
} stbEntry;
|
||||||
|
struct {
|
||||||
|
int64_t ctime;
|
||||||
|
int32_t ttlDays;
|
||||||
|
tb_uid_t suid;
|
||||||
|
const void *pTags;
|
||||||
|
} ctbEntry;
|
||||||
|
struct {
|
||||||
|
int64_t ctime;
|
||||||
|
int32_t ttlDays;
|
||||||
|
SSchemaWrapper schema;
|
||||||
|
} ntbEntry;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SMetaReader {
|
||||||
|
int32_t flags;
|
||||||
|
SMeta *pMeta;
|
||||||
|
SCoder coder;
|
||||||
|
SMetaEntry me;
|
||||||
|
void *pBuf;
|
||||||
|
int szBuf;
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -40,8 +40,6 @@ int metaOpen(SVnode* pVnode, SMeta** ppMeta);
|
||||||
int metaClose(SMeta* pMeta);
|
int metaClose(SMeta* pMeta);
|
||||||
|
|
||||||
// metaEntry ==================
|
// metaEntry ==================
|
||||||
typedef struct SMetaEntry SMetaEntry;
|
|
||||||
|
|
||||||
int metaEncodeEntry(SCoder* pCoder, const SMetaEntry* pME);
|
int metaEncodeEntry(SCoder* pCoder, const SMetaEntry* pME);
|
||||||
int metaDecodeEntry(SCoder* pCoder, SMetaEntry* pME);
|
int metaDecodeEntry(SCoder* pCoder, SMetaEntry* pME);
|
||||||
|
|
||||||
|
@ -51,10 +49,6 @@ int metaDropSTable(SMeta* pMeta, int64_t verison, SVDropStbReq* pReq);
|
||||||
int metaCreateTable(SMeta* pMeta, int64_t version, SVCreateTbReq* pReq);
|
int metaCreateTable(SMeta* pMeta, int64_t version, SVCreateTbReq* pReq);
|
||||||
|
|
||||||
// metaQuery ==================
|
// metaQuery ==================
|
||||||
typedef struct SMetaReader SMetaReader;
|
|
||||||
|
|
||||||
void metaEntryReaderInit(SMetaReader* pReader, SMeta* pMeta, int32_t flags);
|
|
||||||
void metaEntryReaderClear(SMetaReader* pReader);
|
|
||||||
int metaGetTableEntryByVersion(SMetaReader* pReader, int64_t version, tb_uid_t uid);
|
int metaGetTableEntryByVersion(SMetaReader* pReader, int64_t version, tb_uid_t uid);
|
||||||
int metaGetTableEntryByUid(SMetaReader* pReader, tb_uid_t uid);
|
int metaGetTableEntryByUid(SMetaReader* pReader, tb_uid_t uid);
|
||||||
int metaGetTableEntryByName(SMetaReader* pReader, const char* name);
|
int metaGetTableEntryByName(SMetaReader* pReader, const char* name);
|
||||||
|
@ -134,39 +128,6 @@ SMCtbCursor* metaOpenCtbCursor(SMeta* pMeta, tb_uid_t uid);
|
||||||
void metaCloseCtbCurosr(SMCtbCursor* pCtbCur);
|
void metaCloseCtbCurosr(SMCtbCursor* pCtbCur);
|
||||||
tb_uid_t metaCtbCursorNext(SMCtbCursor* pCtbCur);
|
tb_uid_t metaCtbCursorNext(SMCtbCursor* pCtbCur);
|
||||||
|
|
||||||
struct SMetaEntry {
|
|
||||||
int64_t version;
|
|
||||||
int8_t type;
|
|
||||||
tb_uid_t uid;
|
|
||||||
const char* name;
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
SSchemaWrapper schema;
|
|
||||||
SSchemaWrapper schemaTag;
|
|
||||||
} stbEntry;
|
|
||||||
struct {
|
|
||||||
int64_t ctime;
|
|
||||||
int32_t ttlDays;
|
|
||||||
tb_uid_t suid;
|
|
||||||
const void* pTags;
|
|
||||||
} ctbEntry;
|
|
||||||
struct {
|
|
||||||
int64_t ctime;
|
|
||||||
int32_t ttlDays;
|
|
||||||
SSchemaWrapper schema;
|
|
||||||
} ntbEntry;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
struct SMetaReader {
|
|
||||||
int32_t flags;
|
|
||||||
SMeta* pMeta;
|
|
||||||
SCoder coder;
|
|
||||||
SMetaEntry me;
|
|
||||||
void* pBuf;
|
|
||||||
int szBuf;
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef META_REFACT
|
#ifndef META_REFACT
|
||||||
// SMetaDB
|
// SMetaDB
|
||||||
int metaOpenDB(SMeta* pMeta);
|
int metaOpenDB(SMeta* pMeta);
|
||||||
|
|
|
@ -15,13 +15,13 @@
|
||||||
|
|
||||||
#include "vnodeInt.h"
|
#include "vnodeInt.h"
|
||||||
|
|
||||||
void metaEntryReaderInit(SMetaReader *pReader, SMeta *pMeta, int32_t flags) {
|
void metaReaderInit(SMetaReader *pReader, SVnode *pVnode, int32_t flags) {
|
||||||
memset(pReader, 0, sizeof(*pReader));
|
memset(pReader, 0, sizeof(*pReader));
|
||||||
pReader->flags = flags;
|
pReader->flags = flags;
|
||||||
pReader->pMeta = pMeta;
|
pReader->pMeta = pVnode->pMeta;
|
||||||
}
|
}
|
||||||
|
|
||||||
void metaEntryReaderClear(SMetaReader *pReader) {
|
void metaReaderClear(SMetaReader *pReader) {
|
||||||
tCoderClear(&pReader->coder);
|
tCoderClear(&pReader->coder);
|
||||||
TDB_FREE(pReader->pBuf);
|
TDB_FREE(pReader->pBuf);
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,14 @@ int metaGetTableEntryByName(SMetaReader *pReader, const char *name) {
|
||||||
return metaGetTableEntryByUid(pReader, uid);
|
return metaGetTableEntryByUid(pReader, uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
int metaReadNext(SMetaReader *pReader) {
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const SMetaEntry *metaReaderGetEntry(SMetaReader *pReader) { return &pReader->me; }
|
||||||
|
|
||||||
|
#if 1 // ===================================================
|
||||||
SMTbCursor *metaOpenTbCursor(SMeta *pMeta) {
|
SMTbCursor *metaOpenTbCursor(SMeta *pMeta) {
|
||||||
SMTbCursor *pTbCur = NULL;
|
SMTbCursor *pTbCur = NULL;
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -51,7 +51,7 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// query meta
|
// query meta
|
||||||
metaEntryReaderInit(&mer1, pVnode->pMeta, 0);
|
metaReaderInit(&mer1, pVnode, 0);
|
||||||
|
|
||||||
if (metaGetTableEntryByName(&mer1, infoReq.tbName) < 0) {
|
if (metaGetTableEntryByName(&mer1, infoReq.tbName) < 0) {
|
||||||
goto _exit;
|
goto _exit;
|
||||||
|
@ -66,7 +66,7 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
schemaTag = mer1.me.stbEntry.schemaTag;
|
schemaTag = mer1.me.stbEntry.schemaTag;
|
||||||
metaRsp.suid = mer1.me.uid;
|
metaRsp.suid = mer1.me.uid;
|
||||||
} else if (mer1.me.type == TSDB_CHILD_TABLE) {
|
} else if (mer1.me.type == TSDB_CHILD_TABLE) {
|
||||||
metaEntryReaderInit(&mer2, pVnode->pMeta, 0);
|
metaReaderInit(&mer2, pVnode, 0);
|
||||||
if (metaGetTableEntryByUid(&mer2, mer1.me.ctbEntry.suid) < 0) goto _exit;
|
if (metaGetTableEntryByUid(&mer2, mer1.me.ctbEntry.suid) < 0) goto _exit;
|
||||||
|
|
||||||
metaRsp.suid = mer2.me.uid;
|
metaRsp.suid = mer2.me.uid;
|
||||||
|
@ -113,8 +113,8 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg) {
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
taosMemoryFree(metaRsp.pSchemas);
|
taosMemoryFree(metaRsp.pSchemas);
|
||||||
metaEntryReaderClear(&mer2);
|
metaReaderClear(&mer2);
|
||||||
metaEntryReaderClear(&mer1);
|
metaReaderClear(&mer1);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue