TD-353
This commit is contained in:
parent
b51aceefde
commit
f1ce022556
|
@ -337,7 +337,7 @@ char *tsdbGetMetaFileName(char *rootDir) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void tsdbGetDataFileName(STsdbRepo *pRepo, int fid, int type, char *fname) {
|
void tsdbGetDataFileName(STsdbRepo *pRepo, int fid, int type, char *fname) {
|
||||||
snprintf(fname, TSDB_FILENAME_LEN, "%s/%s/v%df%d.%s", pRepo->rootDir, TSDB_DATA_DIR_NAME, REPO_ID(pRepo), fid, tsdbFileSuffix[type]);
|
snprintf(fname, TSDB_FILENAME_LEN, "%s/%s/v%df%d%s", pRepo->rootDir, TSDB_DATA_DIR_NAME, REPO_ID(pRepo), fid, tsdbFileSuffix[type]);
|
||||||
}
|
}
|
||||||
|
|
||||||
int tsdbLockRepo(STsdbRepo *pRepo) {
|
int tsdbLockRepo(STsdbRepo *pRepo) {
|
||||||
|
|
|
@ -148,44 +148,49 @@ _err:
|
||||||
|
|
||||||
int tsdbCloseHelperFile(SRWHelper *pHelper, bool hasError) {
|
int tsdbCloseHelperFile(SRWHelper *pHelper, bool hasError) {
|
||||||
if (pHelper->files.headF.fd > 0) {
|
if (pHelper->files.headF.fd > 0) {
|
||||||
fsync(pHelper->files.headF.fd);
|
|
||||||
close(pHelper->files.headF.fd);
|
close(pHelper->files.headF.fd);
|
||||||
pHelper->files.headF.fd = -1;
|
pHelper->files.headF.fd = -1;
|
||||||
}
|
}
|
||||||
if (pHelper->files.dataF.fd > 0) {
|
if (pHelper->files.dataF.fd > 0) {
|
||||||
if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.dataF), 0);
|
if ((helperType(pHelper) == TSDB_WRITE_HELPER)) {
|
||||||
fsync(pHelper->files.dataF.fd);
|
tsdbUpdateFileHeader(&(pHelper->files.dataF), 0);
|
||||||
|
fsync(pHelper->files.dataF.fd);
|
||||||
|
}
|
||||||
close(pHelper->files.dataF.fd);
|
close(pHelper->files.dataF.fd);
|
||||||
pHelper->files.dataF.fd = -1;
|
pHelper->files.dataF.fd = -1;
|
||||||
}
|
}
|
||||||
if (pHelper->files.lastF.fd > 0) {
|
if (pHelper->files.lastF.fd > 0) {
|
||||||
fsync(pHelper->files.lastF.fd);
|
if ((helperType(pHelper) == TSDB_WRITE_HELPER)) {
|
||||||
close(pHelper->files.lastF.fd);
|
fsync(pHelper->files.lastF.fd);
|
||||||
|
close(pHelper->files.lastF.fd);
|
||||||
|
}
|
||||||
pHelper->files.lastF.fd = -1;
|
pHelper->files.lastF.fd = -1;
|
||||||
}
|
}
|
||||||
if (pHelper->files.nHeadF.fd > 0) {
|
if (helperType(pHelper) == TSDB_WRITE_HELPER) {
|
||||||
if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nHeadF), 0);
|
if (pHelper->files.nHeadF.fd > 0) {
|
||||||
fsync(pHelper->files.nHeadF.fd);
|
if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nHeadF), 0);
|
||||||
close(pHelper->files.nHeadF.fd);
|
fsync(pHelper->files.nHeadF.fd);
|
||||||
pHelper->files.nHeadF.fd = -1;
|
close(pHelper->files.nHeadF.fd);
|
||||||
if (hasError) {
|
pHelper->files.nHeadF.fd = -1;
|
||||||
remove(pHelper->files.nHeadF.fname);
|
if (hasError) {
|
||||||
} else {
|
remove(pHelper->files.nHeadF.fname);
|
||||||
rename(pHelper->files.nHeadF.fname, pHelper->files.headF.fname);
|
} else {
|
||||||
pHelper->files.headF.info = pHelper->files.nHeadF.info;
|
rename(pHelper->files.nHeadF.fname, pHelper->files.headF.fname);
|
||||||
|
pHelper->files.headF.info = pHelper->files.nHeadF.info;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (pHelper->files.nLastF.fd > 0) {
|
if (pHelper->files.nLastF.fd > 0) {
|
||||||
if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nLastF), 0);
|
if (!hasError) tsdbUpdateFileHeader(&(pHelper->files.nLastF), 0);
|
||||||
fsync(pHelper->files.nLastF.fd);
|
fsync(pHelper->files.nLastF.fd);
|
||||||
close(pHelper->files.nLastF.fd);
|
close(pHelper->files.nLastF.fd);
|
||||||
pHelper->files.nLastF.fd = -1;
|
pHelper->files.nLastF.fd = -1;
|
||||||
if (hasError) {
|
if (hasError) {
|
||||||
remove(pHelper->files.nLastF.fname);
|
remove(pHelper->files.nLastF.fname);
|
||||||
} else {
|
} else {
|
||||||
rename(pHelper->files.nLastF.fname, pHelper->files.lastF.fname);
|
rename(pHelper->files.nLastF.fname, pHelper->files.lastF.fname);
|
||||||
pHelper->files.lastF.info = pHelper->files.nLastF.info;
|
pHelper->files.lastF.info = pHelper->files.nLastF.info;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -578,6 +578,5 @@ static int tdRestoreKVStore(SKVStore *pStore) {
|
||||||
_err:
|
_err:
|
||||||
taosHashDestroyIter(pIter);
|
taosHashDestroyIter(pIter);
|
||||||
tfree(buf);
|
tfree(buf);
|
||||||
taosHashDestroyIter(pIter);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
Loading…
Reference in New Issue