feat: WAL cleanup not affected by topic consumption anymore
This commit is contained in:
parent
a5d8549cb1
commit
22d92cd3dc
|
@ -290,14 +290,22 @@ int32_t walEndSnapshot(SWal *pWal) {
|
|||
int ts = taosGetTimestampSec();
|
||||
|
||||
ver = TMAX(ver - pWal->vers.logRetention, pWal->vers.firstVer - 1);
|
||||
|
||||
bool hasTopic = false;
|
||||
int64_t refVer = ver;
|
||||
void *pIter = NULL;
|
||||
while (1) {
|
||||
pIter = taosHashIterate(pWal->pRefHash, pIter);
|
||||
if (pIter == NULL) break;
|
||||
SWalRef *pRef = *(SWalRef **)pIter;
|
||||
if (pRef->refVer == -1) continue;
|
||||
ver = TMIN(ver, pRef->refVer - 1);
|
||||
refVer = TMIN(refVer, pRef->refVer - 1);
|
||||
wDebug("vgId:%d, wal found ref %" PRId64 ", refId %" PRId64, pWal->cfg.vgId, pRef->refVer, pRef->refId);
|
||||
hasTopic = true;
|
||||
}
|
||||
// compatible mode
|
||||
if (pWal->cfg.retentionPeriod == 0 && hasTopic) {
|
||||
ver = TMIN(ver, refVer);
|
||||
}
|
||||
|
||||
int deleteCnt = 0;
|
||||
|
|
Loading…
Reference in New Issue