enh: tolerate out-of-order of closeTS in walEndSnapshot
This commit is contained in:
parent
92d184b32f
commit
d9c84b4b72
|
@ -327,15 +327,19 @@ int32_t walEndSnapshot(SWal *pWal) {
|
||||||
|
|
||||||
// iterate files, until the searched result
|
// iterate files, until the searched result
|
||||||
// delete according to file size or close time
|
// delete according to file size or close time
|
||||||
|
SWalFileInfo *pUntil = NULL;
|
||||||
for (SWalFileInfo *iter = pWal->fileInfoSet->pData; iter < pInfo; iter++) {
|
for (SWalFileInfo *iter = pWal->fileInfoSet->pData; iter < pInfo; iter++) {
|
||||||
if ((pWal->cfg.retentionSize > 0 && newTotSize > pWal->cfg.retentionSize) ||
|
if ((pWal->cfg.retentionSize > 0 && newTotSize > pWal->cfg.retentionSize) ||
|
||||||
(pWal->cfg.retentionPeriod == 0 ||
|
(pWal->cfg.retentionPeriod == 0 ||
|
||||||
pWal->cfg.retentionPeriod > 0 && iter->closeTs >= 0 && iter->closeTs + pWal->cfg.retentionPeriod < ts)) {
|
pWal->cfg.retentionPeriod > 0 && iter->closeTs >= 0 && iter->closeTs + pWal->cfg.retentionPeriod < ts)) {
|
||||||
deleteCnt++;
|
|
||||||
newTotSize -= iter->fileSize;
|
newTotSize -= iter->fileSize;
|
||||||
taosArrayPush(pWal->toDeleteFiles, iter);
|
pUntil = iter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (SWalFileInfo *iter = pWal->fileInfoSet->pData; iter <= pUntil; iter++) {
|
||||||
|
deleteCnt++;
|
||||||
|
taosArrayPush(pWal->toDeleteFiles, iter);
|
||||||
|
}
|
||||||
|
|
||||||
// make new array, remove files
|
// make new array, remove files
|
||||||
taosArrayPopFrontBatch(pWal->fileInfoSet, deleteCnt);
|
taosArrayPopFrontBatch(pWal->fileInfoSet, deleteCnt);
|
||||||
|
|
Loading…
Reference in New Issue