提交 3041354e 编写于 作者: H Hongze Cheng

TD-353

上级 ab64511b
......@@ -111,6 +111,7 @@ typedef struct {
} SMemTable;
// ------------------ tsdbFile.c
extern const char* tsdbFileSuffix[];
typedef enum {
TSDB_FILE_TYPE_HEAD = 0,
TSDB_FILE_TYPE_DATA,
......@@ -340,6 +341,7 @@ void tsdbFreeFileH(STsdbFileH* pFileH);
#define IS_REPO_LOCKED(r) (r)->repoLocked
char* tsdbGetMetaFileName(char* rootDir);
char* tsdbGetDataFileName(STsdbRepo* pRepo, int fid, int type);
int tsdbLockRepo(STsdbRepo* pRepo);
int tsdbUnlockRepo(STsdbRepo* pRepo);
......
......@@ -99,7 +99,13 @@ int *tsdbOpenFileH(STsdbRepo *pRepo) {
SFileGroup fileGroup = {0};
if (tsdbSearchFGroup(pFileH, fid, TD_EQ) != NULL) continue;
fileGroup.fileId = fid;
for (int type = TSDB_FILE_TYPE_HEAD; type <= TSDB_FILE_TYPE_LAST; type++) {
fileGroup.headF.fname = tsdbGetDataFileName(pRepo, fid, type);
if (fileGroup.headF.fname == NULL) goto _err;
if (tsdbInitFile(fileGroup.headF))
}
for (int type = TSDB_FILE_TYPE_NHEAD; type <= TSDB_FILE_TYPE_NLAST; type++) {
......@@ -238,20 +244,6 @@ SFileGroup *tsdbGetFileGroupNext(SFileGroupIter *pIter) {
return ret;
}
char *tsdbGetFileName(char *dataDir, int fileId, int type) {
int tlen = strlen(dataDir) + strlen(tsdbFileSuffix[type]) + 24;
char *fname = (char *)malloc(tlen);
if (fname == NULL) {
terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
return -1;
}
sprintf(fname, "%s/v%df%d%s", dataDir, fileId, tsdbFileSuffix[type]);
return 0;
}
int tsdbOpenFile(SFile *pFile, int oflag) {
ASSERT(!TSDB_IS_FILE_OPENED(pFile));
......
......@@ -296,6 +296,19 @@ char *tsdbGetMetaFileName(char *rootDir) {
return fname;
}
char *tsdbGetDataFileName(STsdbRepo *pRepo, int fid, int type) {
int tlen = strlen(pRepo->rootDir) + strlen(tsdbFileSuffix[type]) + 24;
char *fname = malloc(tlen);
if (fname == NULL) {
terrno = TSDB_CODE_TDB_OUT_OF_MEMORY;
return -1;
}
sprintf(fname, "%s/%s/v%df%d.%s", pRepo->rootDir, TSDB_DATA_DIR_NAME, REPO_ID(pRepo), fid, tsdbFileSuffix[type]);
return fname;
}
int tsdbLockRepo(STsdbRepo *pRepo) {
int code = pthread_mutex_lock(&pRepo->mutex);
if (code != 0) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册