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"
|
#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 =============================================
|
// SDataFileReader =============================================
|
||||||
struct SDataFileReader {
|
struct SDataFileReader {
|
||||||
SDataFileReaderConfig config[1];
|
SDataFileReaderConfig config[1];
|
||||||
|
@ -1167,6 +1163,65 @@ int32_t tsdbFileWriteHeadFooter(STsdbFD *fd, int64_t *fileSize, const SHeadFoote
|
||||||
return 0;
|
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) {
|
static int32_t tsdbDataFileWriteHeadFooter(SDataFileWriter *writer) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t lino = 0;
|
int32_t lino = 0;
|
||||||
|
@ -1200,6 +1255,21 @@ _exit:
|
||||||
return code;
|
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) {
|
static int32_t tsdbDataFileDoWriteTombBlk(SDataFileWriter *writer) {
|
||||||
ASSERT(TARRAY2_SIZE(writer->tombBlkArray) > 0);
|
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 tsdbDataFileWriteBlockData(SDataFileWriter *writer, SBlockData *bData);
|
||||||
int32_t tsdbDataFileFlush(SDataFileWriter *writer);
|
int32_t tsdbDataFileFlush(SDataFileWriter *writer);
|
||||||
|
|
||||||
|
// tomb
|
||||||
int32_t tsdbDataFileWriteTombRecord(SDataFileWriter *writer, const STombRecord *record);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tsdbSttFileRW.h"
|
#include "tsdbSttFileRW.h"
|
||||||
|
#include "tsdbDataFileRW.h"
|
||||||
|
|
||||||
// SSttFReader ============================================================
|
// SSttFReader ============================================================
|
||||||
struct SSttFileReader {
|
struct SSttFileReader {
|
||||||
|
@ -528,65 +529,6 @@ _exit:
|
||||||
return code;
|
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) {
|
static int32_t tsdbSttFileDoWriteTombBlock(SSttFileWriter *writer) {
|
||||||
if (TOMB_BLOCK_SIZE(writer->tombBlock) == 0) return 0;
|
if (TOMB_BLOCK_SIZE(writer->tombBlock) == 0) return 0;
|
||||||
|
|
||||||
|
@ -655,21 +597,6 @@ _exit:
|
||||||
return code;
|
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) {
|
static int32_t tsdbSttFileDoWriteTombBlk(SSttFileWriter *writer) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t lino = 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);
|
extern int32_t tsdbReadDataBlockEx(SDataFReader *pReader, SDataBlk *pDataBlk, SBlockData *pBlockData);
|
||||||
|
|
||||||
// new
|
// new
|
||||||
|
#include "tsdbDataFileRW.h"
|
||||||
|
#include "tsdbSttFileRW.h"
|
||||||
extern int32_t save_fs(const TFileSetArray *arr, const char *fname);
|
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 current_fname(STsdb *pTsdb, char *fname, EFCurrentT ftype);
|
||||||
extern int32_t tsdbFileWriteBrinBlock(STsdbFD *fd, SBrinBlock *brinBlock, int8_t cmprAlg, int64_t *fileSize,
|
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 tsdbSttLvlClear(SSttLvl **lvl);
|
||||||
extern int32_t tsdbFileWriteSttBlk(STsdbFD *fd, const TSttBlkArray *sttBlkArray, SFDataPtr *ptr, int64_t *fileSize);
|
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 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);
|
extern int32_t tsdbFileWriteTombFooter(STsdbFD *fd, const STombFooter *footer, int64_t *fileSize);
|
||||||
|
|
||||||
static int32_t tsdbUpgradeHead(STsdb *tsdb, SDFileSet *pDFileSet, SDataFReader *reader, STFileSet *fset) {
|
static int32_t tsdbUpgradeHead(STsdb *tsdb, SDFileSet *pDFileSet, SDataFReader *reader, STFileSet *fset) {
|
||||||
|
|
Loading…
Reference in New Issue