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();
|
int ts = taosGetTimestampSec();
|
||||||
|
|
||||||
ver = TMAX(ver - pWal->vers.logRetention, pWal->vers.firstVer - 1);
|
ver = TMAX(ver - pWal->vers.logRetention, pWal->vers.firstVer - 1);
|
||||||
|
|
||||||
|
bool hasTopic = false;
|
||||||
|
int64_t refVer = ver;
|
||||||
void *pIter = NULL;
|
void *pIter = NULL;
|
||||||
while (1) {
|
while (1) {
|
||||||
pIter = taosHashIterate(pWal->pRefHash, pIter);
|
pIter = taosHashIterate(pWal->pRefHash, pIter);
|
||||||
if (pIter == NULL) break;
|
if (pIter == NULL) break;
|
||||||
SWalRef *pRef = *(SWalRef **)pIter;
|
SWalRef *pRef = *(SWalRef **)pIter;
|
||||||
if (pRef->refVer == -1) continue;
|
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);
|
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;
|
int deleteCnt = 0;
|
||||||
|
|
Loading…
Reference in New Issue