refact: relocate declarations and defs of tsdbFileWriteTombBlock and tsdbFileWriteTombBlk
This commit is contained in:
parent
823aad4a5e
commit
ed6d7c4c4d
|
@ -15,10 +15,6 @@
|
|||
|
||||
#include "tsdbDataFileRW.h"
|
||||
|
||||
extern int32_t tsdbFileWriteTombBlock(STsdbFD *fd, STombBlock *tombBlock, int8_t cmprAlg, int64_t *fileSize,
|
||||
TTombBlkArray *tombBlkArray, uint8_t **bufArr, SVersionRange *range);
|
||||
extern int32_t tsdbFileWriteTombBlk(STsdbFD *fd, const TTombBlkArray *tombBlkArray, SFDataPtr *ptr, int64_t *fileSize);
|
||||
|
||||
// SDataFileReader =============================================
|
||||
struct SDataFileReader {
|
||||
SDataFileReaderConfig config[1];
|
||||
|
@ -1167,6 +1163,65 @@ int32_t tsdbFileWriteHeadFooter(STsdbFD *fd, int64_t *fileSize, const SHeadFoote
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t tsdbFileWriteTombBlock(STsdbFD *fd, STombBlock *tombBlock, int8_t cmprAlg, int64_t *fileSize,
|
||||
TTombBlkArray *tombBlkArray, uint8_t **bufArr, SVersionRange *range) {
|
||||
int32_t code;
|
||||
|
||||
if (TOMB_BLOCK_SIZE(tombBlock) == 0) return 0;
|
||||
|
||||
STombBlk tombBlk[1] = {{
|
||||
.dp[0] =
|
||||
{
|
||||
.offset = *fileSize,
|
||||
.size = 0,
|
||||
},
|
||||
.minTbid =
|
||||
{
|
||||
.suid = TARRAY2_FIRST(tombBlock->suid),
|
||||
.uid = TARRAY2_FIRST(tombBlock->uid),
|
||||
},
|
||||
.maxTbid =
|
||||
{
|
||||
.suid = TARRAY2_LAST(tombBlock->suid),
|
||||
.uid = TARRAY2_LAST(tombBlock->uid),
|
||||
},
|
||||
.minVer = TARRAY2_FIRST(tombBlock->version),
|
||||
.maxVer = TARRAY2_FIRST(tombBlock->version),
|
||||
.numRec = TOMB_BLOCK_SIZE(tombBlock),
|
||||
.cmprAlg = cmprAlg,
|
||||
}};
|
||||
|
||||
for (int32_t i = 1; i < TOMB_BLOCK_SIZE(tombBlock); i++) {
|
||||
if (tombBlk->minVer > TARRAY2_GET(tombBlock->version, i)) {
|
||||
tombBlk->minVer = TARRAY2_GET(tombBlock->version, i);
|
||||
}
|
||||
if (tombBlk->maxVer < TARRAY2_GET(tombBlock->version, i)) {
|
||||
tombBlk->maxVer = TARRAY2_GET(tombBlock->version, i);
|
||||
}
|
||||
}
|
||||
|
||||
range->minVer = tombBlk->minVer;
|
||||
range->maxVer = tombBlk->maxVer;
|
||||
|
||||
for (int32_t i = 0; i < ARRAY_SIZE(tombBlock->dataArr); i++) {
|
||||
code = tsdbCmprData((uint8_t *)TARRAY2_DATA(&tombBlock->dataArr[i]), TARRAY2_DATA_LEN(&tombBlock->dataArr[i]),
|
||||
TSDB_DATA_TYPE_BIGINT, tombBlk->cmprAlg, &bufArr[0], 0, &tombBlk->size[i], &bufArr[1]);
|
||||
if (code) return code;
|
||||
|
||||
code = tsdbWriteFile(fd, *fileSize, bufArr[0], tombBlk->size[i]);
|
||||
if (code) return code;
|
||||
|
||||
tombBlk->dp->size += tombBlk->size[i];
|
||||
*fileSize += tombBlk->size[i];
|
||||
}
|
||||
|
||||
code = TARRAY2_APPEND_PTR(tombBlkArray, tombBlk);
|
||||
if (code) return code;
|
||||
|
||||
tTombBlockClear(tombBlock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int32_t tsdbDataFileWriteHeadFooter(SDataFileWriter *writer) {
|
||||
int32_t code = 0;
|
||||
int32_t lino = 0;
|
||||
|
@ -1200,6 +1255,21 @@ _exit:
|
|||
return code;
|
||||
}
|
||||
|
||||
int32_t tsdbFileWriteTombBlk(STsdbFD *fd, const TTombBlkArray *tombBlkArray, SFDataPtr *ptr, int64_t *fileSize) {
|
||||
ptr->size = TARRAY2_DATA_LEN(tombBlkArray);
|
||||
if (ptr->size > 0) {
|
||||
ptr->offset = *fileSize;
|
||||
|
||||
int32_t code = tsdbWriteFile(fd, *fileSize, (const uint8_t *)TARRAY2_DATA(tombBlkArray), ptr->size);
|
||||
if (code) {
|
||||
return code;
|
||||
}
|
||||
|
||||
*fileSize += ptr->size;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int32_t tsdbDataFileDoWriteTombBlk(SDataFileWriter *writer) {
|
||||
ASSERT(TARRAY2_SIZE(writer->tombBlkArray) > 0);
|
||||
|
||||
|
|
|
@ -97,7 +97,11 @@ int32_t tsdbDataFileWriteRow(SDataFileWriter *writer, SRowInfo *row);
|
|||
int32_t tsdbDataFileWriteBlockData(SDataFileWriter *writer, SBlockData *bData);
|
||||
int32_t tsdbDataFileFlush(SDataFileWriter *writer);
|
||||
|
||||
// tomb
|
||||
int32_t tsdbDataFileWriteTombRecord(SDataFileWriter *writer, const STombRecord *record);
|
||||
int32_t tsdbFileWriteTombBlock(STsdbFD *fd, STombBlock *tombBlock, int8_t cmprAlg, int64_t *fileSize,
|
||||
TTombBlkArray *tombBlkArray, uint8_t **bufArr, SVersionRange *range);
|
||||
int32_t tsdbFileWriteTombBlk(STsdbFD *fd, const TTombBlkArray *tombBlkArray, SFDataPtr *ptr, int64_t *fileSize);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
|
||||
#include "tsdbSttFileRW.h"
|
||||
#include "tsdbDataFileRW.h"
|
||||
|
||||
// SSttFReader ============================================================
|
||||
struct SSttFileReader {
|
||||
|
@ -528,65 +529,6 @@ _exit:
|
|||
return code;
|
||||
}
|
||||
|
||||
int32_t tsdbFileWriteTombBlock(STsdbFD *fd, STombBlock *tombBlock, int8_t cmprAlg, int64_t *fileSize,
|
||||
TTombBlkArray *tombBlkArray, uint8_t **bufArr, SVersionRange *range) {
|
||||
int32_t code;
|
||||
|
||||
if (TOMB_BLOCK_SIZE(tombBlock) == 0) return 0;
|
||||
|
||||
STombBlk tombBlk[1] = {{
|
||||
.dp[0] =
|
||||
{
|
||||
.offset = *fileSize,
|
||||
.size = 0,
|
||||
},
|
||||
.minTbid =
|
||||
{
|
||||
.suid = TARRAY2_FIRST(tombBlock->suid),
|
||||
.uid = TARRAY2_FIRST(tombBlock->uid),
|
||||
},
|
||||
.maxTbid =
|
||||
{
|
||||
.suid = TARRAY2_LAST(tombBlock->suid),
|
||||
.uid = TARRAY2_LAST(tombBlock->uid),
|
||||
},
|
||||
.minVer = TARRAY2_FIRST(tombBlock->version),
|
||||
.maxVer = TARRAY2_FIRST(tombBlock->version),
|
||||
.numRec = TOMB_BLOCK_SIZE(tombBlock),
|
||||
.cmprAlg = cmprAlg,
|
||||
}};
|
||||
|
||||
for (int32_t i = 1; i < TOMB_BLOCK_SIZE(tombBlock); i++) {
|
||||
if (tombBlk->minVer > TARRAY2_GET(tombBlock->version, i)) {
|
||||
tombBlk->minVer = TARRAY2_GET(tombBlock->version, i);
|
||||
}
|
||||
if (tombBlk->maxVer < TARRAY2_GET(tombBlock->version, i)) {
|
||||
tombBlk->maxVer = TARRAY2_GET(tombBlock->version, i);
|
||||
}
|
||||
}
|
||||
|
||||
range->minVer = tombBlk->minVer;
|
||||
range->maxVer = tombBlk->maxVer;
|
||||
|
||||
for (int32_t i = 0; i < ARRAY_SIZE(tombBlock->dataArr); i++) {
|
||||
code = tsdbCmprData((uint8_t *)TARRAY2_DATA(&tombBlock->dataArr[i]), TARRAY2_DATA_LEN(&tombBlock->dataArr[i]),
|
||||
TSDB_DATA_TYPE_BIGINT, tombBlk->cmprAlg, &bufArr[0], 0, &tombBlk->size[i], &bufArr[1]);
|
||||
if (code) return code;
|
||||
|
||||
code = tsdbWriteFile(fd, *fileSize, bufArr[0], tombBlk->size[i]);
|
||||
if (code) return code;
|
||||
|
||||
tombBlk->dp->size += tombBlk->size[i];
|
||||
*fileSize += tombBlk->size[i];
|
||||
}
|
||||
|
||||
code = TARRAY2_APPEND_PTR(tombBlkArray, tombBlk);
|
||||
if (code) return code;
|
||||
|
||||
tTombBlockClear(tombBlock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int32_t tsdbSttFileDoWriteTombBlock(SSttFileWriter *writer) {
|
||||
if (TOMB_BLOCK_SIZE(writer->tombBlock) == 0) return 0;
|
||||
|
||||
|
@ -655,21 +597,6 @@ _exit:
|
|||
return code;
|
||||
}
|
||||
|
||||
int32_t tsdbFileWriteTombBlk(STsdbFD *fd, const TTombBlkArray *tombBlkArray, SFDataPtr *ptr, int64_t *fileSize) {
|
||||
ptr->size = TARRAY2_DATA_LEN(tombBlkArray);
|
||||
if (ptr->size > 0) {
|
||||
ptr->offset = *fileSize;
|
||||
|
||||
int32_t code = tsdbWriteFile(fd, *fileSize, (const uint8_t *)TARRAY2_DATA(tombBlkArray), ptr->size);
|
||||
if (code) {
|
||||
return code;
|
||||
}
|
||||
|
||||
*fileSize += ptr->size;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int32_t tsdbSttFileDoWriteTombBlk(SSttFileWriter *writer) {
|
||||
int32_t code = 0;
|
||||
int32_t lino = 0;
|
||||
|
|
|
@ -20,6 +20,8 @@ extern void tsdbGetCurrentFName(STsdb *pTsdb, char *current, char *current_t)
|
|||
extern int32_t tsdbReadDataBlockEx(SDataFReader *pReader, SDataBlk *pDataBlk, SBlockData *pBlockData);
|
||||
|
||||
// new
|
||||
#include "tsdbDataFileRW.h"
|
||||
#include "tsdbSttFileRW.h"
|
||||
extern int32_t save_fs(const TFileSetArray *arr, const char *fname);
|
||||
extern int32_t current_fname(STsdb *pTsdb, char *fname, EFCurrentT ftype);
|
||||
extern int32_t tsdbFileWriteBrinBlock(STsdbFD *fd, SBrinBlock *brinBlock, int8_t cmprAlg, int64_t *fileSize,
|
||||
|
@ -30,9 +32,6 @@ extern int32_t tsdbSttLvlInit(int32_t level, SSttLvl **lvl);
|
|||
extern int32_t tsdbSttLvlClear(SSttLvl **lvl);
|
||||
extern int32_t tsdbFileWriteSttBlk(STsdbFD *fd, const TSttBlkArray *sttBlkArray, SFDataPtr *ptr, int64_t *fileSize);
|
||||
extern int32_t tsdbFileWriteSttFooter(STsdbFD *fd, const SSttFooter *footer, int64_t *fileSize);
|
||||
extern int32_t tsdbFileWriteTombBlock(STsdbFD *fd, STombBlock *tombBlock, int8_t cmprAlg, int64_t *fileSize,
|
||||
TTombBlkArray *tombBlkArray, uint8_t **bufArr, SVersionRange *range);
|
||||
extern int32_t tsdbFileWriteTombBlk(STsdbFD *fd, const TTombBlkArray *tombBlkArray, SFDataPtr *ptr, int64_t *fileSize);
|
||||
extern int32_t tsdbFileWriteTombFooter(STsdbFD *fd, const STombFooter *footer, int64_t *fileSize);
|
||||
|
||||
static int32_t tsdbUpgradeHead(STsdb *tsdb, SDFileSet *pDFileSet, SDataFReader *reader, STFileSet *fset) {
|
||||
|
|
Loading…
Reference in New Issue