Merge pull request #29645 from taosdata/enh/TS-5945-main
enh: accelerate tsdb snapshot when data are all in stt file
This commit is contained in:
commit
a653c00f73
|
@ -559,6 +559,7 @@ struct STsdbSnapWriter {
|
||||||
SIterMerger* tombIterMerger;
|
SIterMerger* tombIterMerger;
|
||||||
|
|
||||||
// writer
|
// writer
|
||||||
|
bool toSttOnly;
|
||||||
SFSetWriter* fsetWriter;
|
SFSetWriter* fsetWriter;
|
||||||
} ctx[1];
|
} ctx[1];
|
||||||
};
|
};
|
||||||
|
@ -622,6 +623,7 @@ static int32_t tsdbSnapWriteFileSetOpenReader(STsdbSnapWriter* writer) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t lino = 0;
|
int32_t lino = 0;
|
||||||
|
|
||||||
|
writer->ctx->toSttOnly = false;
|
||||||
if (writer->ctx->fset) {
|
if (writer->ctx->fset) {
|
||||||
#if 0
|
#if 0
|
||||||
// open data reader
|
// open data reader
|
||||||
|
@ -656,6 +658,14 @@ static int32_t tsdbSnapWriteFileSetOpenReader(STsdbSnapWriter* writer) {
|
||||||
// open stt reader array
|
// open stt reader array
|
||||||
SSttLvl* lvl;
|
SSttLvl* lvl;
|
||||||
TARRAY2_FOREACH(writer->ctx->fset->lvlArr, lvl) {
|
TARRAY2_FOREACH(writer->ctx->fset->lvlArr, lvl) {
|
||||||
|
if (lvl->level != 0) {
|
||||||
|
if (TARRAY2_SIZE(lvl->fobjArr) > 0) {
|
||||||
|
writer->ctx->toSttOnly = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue; // Only merge level 0
|
||||||
|
}
|
||||||
|
|
||||||
STFileObj* fobj;
|
STFileObj* fobj;
|
||||||
TARRAY2_FOREACH(lvl->fobjArr, fobj) {
|
TARRAY2_FOREACH(lvl->fobjArr, fobj) {
|
||||||
SSttFileReader* reader;
|
SSttFileReader* reader;
|
||||||
|
@ -782,7 +792,7 @@ static int32_t tsdbSnapWriteFileSetOpenWriter(STsdbSnapWriter* writer) {
|
||||||
|
|
||||||
SFSetWriterConfig config = {
|
SFSetWriterConfig config = {
|
||||||
.tsdb = writer->tsdb,
|
.tsdb = writer->tsdb,
|
||||||
.toSttOnly = false,
|
.toSttOnly = writer->ctx->toSttOnly,
|
||||||
.compactVersion = writer->compactVersion,
|
.compactVersion = writer->compactVersion,
|
||||||
.minRow = writer->minRow,
|
.minRow = writer->minRow,
|
||||||
.maxRow = writer->maxRow,
|
.maxRow = writer->maxRow,
|
||||||
|
@ -791,7 +801,7 @@ static int32_t tsdbSnapWriteFileSetOpenWriter(STsdbSnapWriter* writer) {
|
||||||
.fid = writer->ctx->fid,
|
.fid = writer->ctx->fid,
|
||||||
.cid = writer->commitID,
|
.cid = writer->commitID,
|
||||||
.did = writer->ctx->did,
|
.did = writer->ctx->did,
|
||||||
.level = 0,
|
.level = writer->ctx->toSttOnly ? 1 : 0,
|
||||||
};
|
};
|
||||||
// merge stt files to either data or a new stt file
|
// merge stt files to either data or a new stt file
|
||||||
if (writer->ctx->fset) {
|
if (writer->ctx->fset) {
|
||||||
|
|
Loading…
Reference in New Issue