more code

This commit is contained in:
Hongze Cheng 2022-12-21 14:36:12 +08:00
parent fc8802df09
commit a8eb32da9f
3 changed files with 78 additions and 26 deletions

View File

@ -76,7 +76,6 @@ typedef struct SRSmaSnapReader SRSmaSnapReader;
typedef struct SRSmaSnapWriter SRSmaSnapWriter; typedef struct SRSmaSnapWriter SRSmaSnapWriter;
typedef struct SSnapDataHdr SSnapDataHdr; typedef struct SSnapDataHdr SSnapDataHdr;
typedef struct SCommitInfo SCommitInfo; typedef struct SCommitInfo SCommitInfo;
typedef struct SCompactInfo SCompactInfo;
#define VNODE_META_DIR "meta" #define VNODE_META_DIR "meta"
#define VNODE_TSDB_DIR "tsdb" #define VNODE_TSDB_DIR "tsdb"
@ -428,13 +427,10 @@ struct SCommitInfo {
SVnodeInfo info; SVnodeInfo info;
SVnode* pVnode; SVnode* pVnode;
TXN* txn; TXN* txn;
};
struct SCompactInfo {
SVnodeInfo info;
SVnode* pVnode;
TXN* txn;
};
// APIs
int32_t (*commitFn)(STsdb* pTsdb, SCommitInfo* pInfo);
};
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -15,23 +15,26 @@
#include "tsdb.h" #include "tsdb.h"
// typedef struct { typedef struct {
// } SMemDIter; } SMemDIter;
typedef struct { typedef struct {
SArray *aBlockIdx; // SArray<SBlockIdx> SDataFReader *pReader;
SMapData mDataBlk; // SMapData<SDataBlk> SArray *aBlockIdx; // SArray<SBlockIdx>
SBlockData bData; SMapData mDataBlk; // SMapData<SDataBlk>
int32_t iBlockIdx; SBlockData bData;
int32_t iDataBlk; int32_t iBlockIdx;
int32_t iRow; int32_t iDataBlk;
int32_t iRow;
} SDataDIter; } SDataDIter;
typedef struct { typedef struct {
SArray *aSttBlk; // SArray<SSttBlk> SDataFReader *pReader;
SBlockData bData; int32_t iStt;
int32_t iSttBlk; SArray *aSttBlk; // SArray<SSttBlk>
int32_t iRow; SBlockData bData;
int32_t iSttBlk;
int32_t iRow;
} SSttDIter; } SSttDIter;
typedef struct { typedef struct {
@ -53,11 +56,66 @@ typedef struct {
#define TSDB_FLG_DEEP_COMPACT 0x1 #define TSDB_FLG_DEEP_COMPACT 0x1
// ITER ========================= // ITER =========================
static int32_t tsdbDataIterOpen(STsdbDataIter *pIter) { static int32_t tsdbMemDIterOpen(STsdbDataIter **ppIter) {
int32_t code = 0; int32_t code = 0;
int32_t lino = 0; int32_t lino = 0;
STsdbDataIter *pIter = (STsdbDataIter *)taosMemoryCalloc(1, sizeof(*pIter) + sizeof(SMemDIter));
if (pIter == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
goto _exit;
}
// TODO // TODO
_exit: _exit:
if (code) {
*ppIter = NULL;
} else {
*ppIter = pIter;
}
return code;
}
static int32_t tsdbDataDIterOpen(SDataFReader *pReader, STsdbDataIter **ppIter) {
int32_t code = 0;
int32_t lino = 0;
STsdbDataIter *pIter = (STsdbDataIter *)taosMemoryCalloc(1, sizeof(*pIter) + sizeof(SDataDIter));
if (NULL == pIter) {
code = TSDB_CODE_OUT_OF_MEMORY;
goto _exit;
}
// TODO
_exit:
if (code) {
*ppIter = NULL;
} else {
*ppIter = pIter;
}
return code;
}
static int32_t tsdbSttDIterOpen(SDataFReader *pReader, STsdbDataIter **ppIter) {
int32_t code = 0;
int32_t lino = 0;
STsdbDataIter *pIter = (STsdbDataIter *)taosMemoryCalloc(1, sizeof(*pIter) + sizeof(SSttDIter));
if (pIter == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
goto _exit;
}
// TODO
_exit:
if (code) {
*ppIter = NULL;
} else {
*ppIter = pIter;
}
return code; return code;
} }

View File

@ -17,9 +17,7 @@
extern void vnodePrepareCommit(SVnode *pVnode); extern void vnodePrepareCommit(SVnode *pVnode);
#define vnodePrepareCompact vnodePrepareCommit static int32_t vnodeCompactImpl(SCommitInfo *pInfo) {
static int32_t vnodeCompactImpl(SCompactInfo *pInfo) {
int32_t code = 0; int32_t code = 0;
// TODO // TODO
@ -30,7 +28,7 @@ static int32_t vnodeCompactImpl(SCompactInfo *pInfo) {
static int32_t vnodeCompactTask(void *param) { static int32_t vnodeCompactTask(void *param) {
int32_t code = 0; int32_t code = 0;
SCompactInfo *pInfo = (SCompactInfo *)param; SCommitInfo *pInfo = (SCommitInfo *)param;
// compact // compact
vnodeCompactImpl(pInfo); vnodeCompactImpl(pInfo);
@ -46,10 +44,10 @@ int32_t vnodeAsyncCompact(SVnode *pVnode) {
int32_t code = 0; int32_t code = 0;
// prepare // prepare
vnodePrepareCompact(pVnode); vnodePrepareCommit(pVnode);
// schedule compact task // schedule compact task
SCompactInfo *pInfo = taosMemoryCalloc(1, sizeof(*pInfo)); SCommitInfo *pInfo = taosMemoryCalloc(1, sizeof(*pInfo));
if (NULL == pInfo) { if (NULL == pInfo) {
code = TSDB_CODE_OUT_OF_MEMORY; code = TSDB_CODE_OUT_OF_MEMORY;
goto _exit; goto _exit;