more
This commit is contained in:
parent
31224d1263
commit
e0b4319bd3
|
@ -41,7 +41,7 @@ target_sources(
|
||||||
"src/tsdb/tsdbFS.c"
|
"src/tsdb/tsdbFS.c"
|
||||||
"src/tsdb/tsdbOpen.c"
|
"src/tsdb/tsdbOpen.c"
|
||||||
"src/tsdb/tsdbMemTable.c"
|
"src/tsdb/tsdbMemTable.c"
|
||||||
# "src/tsdb/tsdbMemTable2.c"
|
"src/tsdb/tsdbMemTable2.c"
|
||||||
"src/tsdb/tsdbRead.c"
|
"src/tsdb/tsdbRead.c"
|
||||||
"src/tsdb/tsdbReadImpl.c"
|
"src/tsdb/tsdbReadImpl.c"
|
||||||
"src/tsdb/tsdbWrite.c"
|
"src/tsdb/tsdbWrite.c"
|
||||||
|
|
|
@ -33,10 +33,14 @@ extern "C" {
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
typedef struct TSDBKEY TSDBKEY;
|
typedef struct TSDBKEY TSDBKEY;
|
||||||
|
typedef struct SDelOp SDelOp;
|
||||||
|
|
||||||
// tsdbMemTable2.c ==============================================================================================
|
// tsdbMemTable2.c ==============================================================================================
|
||||||
typedef struct SMemTable SMemTable;
|
typedef struct SMemTable SMemTable;
|
||||||
|
|
||||||
|
int32_t tsdbMemTableCreate2(STsdb *pTsdb, SMemTable **ppMemTable);
|
||||||
|
void tsdbMemTableDestroy2(SMemTable *pMemTable);
|
||||||
|
|
||||||
// tsdbMemTable ================
|
// tsdbMemTable ================
|
||||||
typedef struct STsdbRow STsdbRow;
|
typedef struct STsdbRow STsdbRow;
|
||||||
typedef struct STbData STbData;
|
typedef struct STbData STbData;
|
||||||
|
@ -861,6 +865,13 @@ struct TSDBKEY {
|
||||||
TSKEY ts;
|
TSKEY ts;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SDelOp {
|
||||||
|
int64_t version;
|
||||||
|
TSKEY sKey; // included
|
||||||
|
TSKEY eKey; // included
|
||||||
|
SDelOp *pNext;
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -21,12 +21,12 @@ typedef struct SMemData SMemData;
|
||||||
// typedef struct SMemSkipListCurosr SMemSkipListCurosr;
|
// typedef struct SMemSkipListCurosr SMemSkipListCurosr;
|
||||||
|
|
||||||
struct SMemData {
|
struct SMemData {
|
||||||
tb_uid_t suid;
|
tb_uid_t suid;
|
||||||
tb_uid_t uid;
|
tb_uid_t uid;
|
||||||
TSDBKEY minKey;
|
TSDBKEY minKey;
|
||||||
TSDBKEY maxKey;
|
TSDBKEY maxKey;
|
||||||
int64_t nRows;
|
int64_t nRows;
|
||||||
SMemData *pHashNext;
|
SDelOp *pDelList;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SMemTable {
|
struct SMemTable {
|
||||||
|
@ -38,16 +38,39 @@ struct SMemTable {
|
||||||
SArray *pArray;
|
SArray *pArray;
|
||||||
};
|
};
|
||||||
|
|
||||||
int32_t tsdbMemTableCreate(STsdb *pTsdb, SMemTable **ppMemTable) {
|
// SMemTable ==============================================
|
||||||
int32_t code = 0;
|
int32_t tsdbMemTableCreate2(STsdb *pTsdb, SMemTable **ppMemTable) {
|
||||||
// TODO
|
int32_t code = 0;
|
||||||
|
SMemTable *pMemTable = NULL;
|
||||||
|
|
||||||
|
pMemTable = (SMemTable *)taosMemoryCalloc(1, sizeof(*pMemTable));
|
||||||
|
if (pMemTable == NULL) {
|
||||||
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
pMemTable->pTsdb = pTsdb;
|
||||||
|
pMemTable->nRef = 1;
|
||||||
|
pMemTable->minKey = (TSDBKEY){.version = -1, .ts = TSKEY_MAX};
|
||||||
|
pMemTable->maxKey = (TSDBKEY){.version = INT64_MAX, .ts = TSKEY_MIN};
|
||||||
|
pMemTable->nRows = 0;
|
||||||
|
pMemTable->pArray = taosArrayInit(512, sizeof(SMemData *));
|
||||||
|
if (pMemTable->pArray == NULL) {
|
||||||
|
taosMemoryFree(pMemTable);
|
||||||
|
code = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
*ppMemTable = pMemTable;
|
||||||
|
return code;
|
||||||
|
|
||||||
|
_err:
|
||||||
|
*ppMemTable = NULL;
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbMemTableDestroy(SMemTable *pMemTable) {
|
void tsdbMemTableDestroy2(SMemTable *pMemTable) {
|
||||||
int32_t code = 0;
|
ASSERT(0);
|
||||||
// TODO
|
// TODO
|
||||||
return code;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -106,49 +129,6 @@ static int32_t tsdbMemSkipListCursorMoveToPrev(SMemSkipListCurosr *pSlc);
|
||||||
static SMemSkipListNode *tsdbMemSkipListNodeCreate(SVBufPool *pPool, SMemSkipList *pSl, const STsdbRow *pTRow);
|
static SMemSkipListNode *tsdbMemSkipListNodeCreate(SVBufPool *pPool, SMemSkipList *pSl, const STsdbRow *pTRow);
|
||||||
|
|
||||||
// SMemTable ========================
|
// SMemTable ========================
|
||||||
int32_t tsdbMemTableCreate2(STsdb *pTsdb, SMemTable **ppMemTb) {
|
|
||||||
SMemTable *pMemTb = NULL;
|
|
||||||
|
|
||||||
pMemTb = taosMemoryCalloc(1, sizeof(*pMemTb));
|
|
||||||
if (pMemTb == NULL) {
|
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
pMemTb->pTsdb = pTsdb;
|
|
||||||
pMemTb->minKey = TSKEY_MAX;
|
|
||||||
pMemTb->maxKey = TSKEY_MIN;
|
|
||||||
pMemTb->minVer = -1;
|
|
||||||
pMemTb->maxVer = -1;
|
|
||||||
pMemTb->nRows = 0;
|
|
||||||
pMemTb->nHash = 0;
|
|
||||||
pMemTb->nBucket = 1024;
|
|
||||||
pMemTb->pBuckets = taosMemoryCalloc(pMemTb->nBucket, sizeof(*pMemTb->pBuckets));
|
|
||||||
if (pMemTb->pBuckets == NULL) {
|
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
taosMemoryFree(pMemTb);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (tsdbMemSkipListCursorCreate(pTsdb->pVnode->config.tsdbCfg.slLevel, &pMemTb->pSlc) < 0) {
|
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
taosMemoryFree(pMemTb->pBuckets);
|
|
||||||
taosMemoryFree(pMemTb);
|
|
||||||
}
|
|
||||||
|
|
||||||
*ppMemTb = pMemTb;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t tsdbMemTableDestroy2(STsdb *pTsdb, SMemTable *pMemTb) {
|
|
||||||
if (pMemTb) {
|
|
||||||
// loop to destroy the contents (todo)
|
|
||||||
tsdbMemSkipListCursorDestroy(pMemTb->pSlc);
|
|
||||||
taosMemoryFree(pMemTb->pBuckets);
|
|
||||||
taosMemoryFree(pMemTb);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t tsdbInsertData2(SMemTable *pMemTb, int64_t version, const SVSubmitBlk *pSubmitBlk) {
|
int32_t tsdbInsertData2(SMemTable *pMemTb, int64_t version, const SVSubmitBlk *pSubmitBlk) {
|
||||||
SMemData *pMemData;
|
SMemData *pMemData;
|
||||||
STsdb *pTsdb = pMemTb->pTsdb;
|
STsdb *pTsdb = pMemTb->pTsdb;
|
||||||
|
|
Loading…
Reference in New Issue