TD-1949
This commit is contained in:
parent
6ea61b4916
commit
101e0bb1d2
|
@ -59,6 +59,7 @@ int32_t walAlter(twalh pWal, SWalCfg *pCfg);
|
||||||
void walStop(twalh);
|
void walStop(twalh);
|
||||||
void walClose(twalh);
|
void walClose(twalh);
|
||||||
int32_t walRenew(twalh);
|
int32_t walRenew(twalh);
|
||||||
|
void walRemoveOldFiles(twalh);
|
||||||
int32_t walWrite(twalh, SWalHead *);
|
int32_t walWrite(twalh, SWalHead *);
|
||||||
void walFsync(twalh, bool forceFsync);
|
void walFsync(twalh, bool forceFsync);
|
||||||
int32_t walRestore(twalh, void *pVnode, FWalWrite writeFp);
|
int32_t walRestore(twalh, void *pVnode, FWalWrite writeFp);
|
||||||
|
|
|
@ -583,6 +583,7 @@ static int vnodeProcessTsdbStatus(void *arg, int status) {
|
||||||
|
|
||||||
if (status == TSDB_STATUS_COMMIT_OVER) {
|
if (status == TSDB_STATUS_COMMIT_OVER) {
|
||||||
vDebug("vgId:%d, commit over, fver:%" PRIu64 " vver:%" PRIu64, pVnode->vgId, pVnode->fversion, pVnode->version);
|
vDebug("vgId:%d, commit over, fver:%" PRIu64 " vver:%" PRIu64, pVnode->vgId, pVnode->fversion, pVnode->version);
|
||||||
|
walRemoveOldFiles(pVnode->wal);
|
||||||
return vnodeSaveVersion(pVnode);
|
return vnodeSaveVersion(pVnode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ void walClose(void *handle) {
|
||||||
if (remove(pWal->name) < 0) {
|
if (remove(pWal->name) < 0) {
|
||||||
wError("vgId:%d, wal:%p file:%s, failed to remove", pWal->vgId, pWal, pWal->name);
|
wError("vgId:%d, wal:%p file:%s, failed to remove", pWal->vgId, pWal, pWal->name);
|
||||||
} else {
|
} else {
|
||||||
wDebug("vgId:%d, wal:%p file:%s, it is removed", pWal->vgId, pWal, pWal->name);
|
wInfo("vgId:%d, wal:%p file:%s, it is removed", pWal->vgId, pWal, pWal->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -58,24 +58,32 @@ int32_t walRenew(void *handle) {
|
||||||
wDebug("vgId:%d, file:%s, it is created", pWal->vgId, pWal->name);
|
wDebug("vgId:%d, file:%s, it is created", pWal->vgId, pWal->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pWal->keep != TAOS_WAL_KEEP) {
|
pthread_mutex_unlock(&pWal->mutex);
|
||||||
// remove the oldest wal file
|
|
||||||
int64_t oldFileId = -1;
|
|
||||||
if (walGetOldFile(pWal, pWal->fileId, WAL_FILE_NUM, &oldFileId) == 0) {
|
|
||||||
char walName[WAL_FILE_LEN] = {0};
|
|
||||||
snprintf(walName, sizeof(walName), "%s/%s%" PRId64, pWal->path, WAL_PREFIX, oldFileId);
|
|
||||||
|
|
||||||
if (remove(walName) < 0) {
|
return code;
|
||||||
wError("vgId:%d, file:%s, failed to remove since %s", pWal->vgId, walName, strerror(errno));
|
}
|
||||||
} else {
|
|
||||||
wDebug("vgId:%d, file:%s, it is removed", pWal->vgId, walName);
|
void walRemoveOldFiles(void *handle) {
|
||||||
}
|
SWal *pWal = handle;
|
||||||
|
if (pWal == NULL) return;
|
||||||
|
if (pWal->keep == TAOS_WAL_KEEP) return;
|
||||||
|
|
||||||
|
pthread_mutex_lock(&pWal->mutex);
|
||||||
|
|
||||||
|
// remove the oldest wal file
|
||||||
|
int64_t oldFileId = -1;
|
||||||
|
if (walGetOldFile(pWal, pWal->fileId, WAL_FILE_NUM, &oldFileId) == 0) {
|
||||||
|
char walName[WAL_FILE_LEN] = {0};
|
||||||
|
snprintf(walName, sizeof(walName), "%s/%s%" PRId64, pWal->path, WAL_PREFIX, oldFileId);
|
||||||
|
|
||||||
|
if (remove(walName) < 0) {
|
||||||
|
wError("vgId:%d, file:%s, failed to remove since %s", pWal->vgId, walName, strerror(errno));
|
||||||
|
} else {
|
||||||
|
wInfo("vgId:%d, file:%s, it is removed", pWal->vgId, walName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_unlock(&pWal->mutex);
|
pthread_mutex_unlock(&pWal->mutex);
|
||||||
|
|
||||||
return code;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t walWrite(void *handle, SWalHead *pHead) {
|
int32_t walWrite(void *handle, SWalHead *pHead) {
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
|
||||||
|
print ============== deploy
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3001
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
sql create database d1
|
||||||
|
sql use d1
|
||||||
|
|
||||||
|
sql create table t1 (ts timestamp, i int)
|
||||||
|
sql insert into t1 values(now, 1);
|
||||||
|
|
||||||
|
print =============== step3
|
||||||
|
sleep 3000
|
||||||
|
sql select * from t1;
|
||||||
|
print rows: $rows
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
print =============== step4
|
||||||
|
system sh/exec.sh -n dnode1 -s start -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
sql select * from t1;
|
||||||
|
print rows: $rows
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
print =============== step5
|
||||||
|
system sh/exec.sh -n dnode1 -s start -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
sql select * from t1;
|
||||||
|
print rows: $rows
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
print =============== step6
|
||||||
|
system sh/exec.sh -n dnode1 -s start -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
sql select * from t1;
|
||||||
|
print rows: $rows
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
print =============== step7
|
||||||
|
system sh/exec.sh -n dnode1 -s start -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
sql select * from t1;
|
||||||
|
print rows: $rows
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
print =============== step8
|
||||||
|
system sh/exec.sh -n dnode1 -s start -x SIGKILL
|
||||||
|
sleep 3000
|
||||||
|
sql select * from t1;
|
||||||
|
print rows: $rows
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGKILL
|
Loading…
Reference in New Issue