more code
This commit is contained in:
parent
96bfbbe784
commit
f40986408c
|
@ -51,10 +51,10 @@ struct STFileOp {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct SSttLvl {
|
typedef struct SSttLvl {
|
||||||
SRBTreeNode rbtn;
|
|
||||||
int32_t lvl; // level
|
int32_t lvl; // level
|
||||||
int32_t nstt; // number of .stt files on this level
|
int32_t nstt; // number of .stt files on this level
|
||||||
SRBTree sttTree; // .stt file tree, sorted by cid
|
SRBTree sttTree; // .stt file tree, sorted by cid
|
||||||
|
SRBTreeNode rbtn;
|
||||||
} SSttLvl;
|
} SSttLvl;
|
||||||
|
|
||||||
struct STFileSet {
|
struct STFileSet {
|
||||||
|
|
|
@ -165,7 +165,7 @@ _exit:
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t save_fs(int64_t eid, SArray *aTFileSet, const char *fname) {
|
static int32_t save_fs(SArray *aTFileSet, const char *fname) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t lino = 0;
|
int32_t lino = 0;
|
||||||
|
|
||||||
|
@ -178,31 +178,21 @@ static int32_t save_fs(int64_t eid, SArray *aTFileSet, const char *fname) {
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
}
|
}
|
||||||
|
|
||||||
// eid
|
|
||||||
if (cJSON_AddNumberToObject(json, "eid", eid) == NULL) {
|
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
|
||||||
}
|
|
||||||
|
|
||||||
// fset
|
// fset
|
||||||
cJSON *ajson = cJSON_AddArrayToObject(json, "fset");
|
cJSON *ajson = cJSON_AddArrayToObject(json, "fset");
|
||||||
if (ajson == NULL) {
|
if (ajson == NULL) {
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
TSDB_CHECK_CODE(code = TSDB_CODE_OUT_OF_MEMORY, lino, _exit);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
|
||||||
}
|
}
|
||||||
for (int32_t i = 0; i < taosArrayGetSize(aTFileSet); i++) {
|
for (int32_t i = 0; i < taosArrayGetSize(aTFileSet); i++) {
|
||||||
STFileSet *pFileSet = (STFileSet *)taosArrayGet(aTFileSet, i);
|
STFileSet *pFileSet = (STFileSet *)taosArrayGet(aTFileSet, i);
|
||||||
cJSON *item;
|
cJSON *item;
|
||||||
|
|
||||||
if ((item = cJSON_CreateObject()) == NULL) {
|
item = cJSON_CreateObject();
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
if (!item) TSDB_CHECK_CODE(code = TSDB_CODE_OUT_OF_MEMORY, lino, _exit);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
cJSON_AddItemToArray(ajson, item);
|
||||||
}
|
|
||||||
|
|
||||||
code = tsdbFileSetToJson(pFileSet, item);
|
code = tsdbFileSetToJson(pFileSet, item);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
||||||
cJSON_AddItemToArray(ajson, item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
code = save_json(json, fname);
|
code = save_json(json, fname);
|
||||||
|
@ -396,7 +386,7 @@ static int32_t open_fs(STFileSystem *fs, int8_t rollback) {
|
||||||
code = scan_and_fix_fs(fs);
|
code = scan_and_fix_fs(fs);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
} else {
|
} else {
|
||||||
code = save_fs(0, fs->cstate, fCurrent);
|
code = save_fs(fs->cstate, fCurrent);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -521,7 +511,7 @@ int32_t tsdbFSEditBegin(STFileSystem *fs, int64_t eid, const SArray *aFileOp, EF
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
||||||
// save fs
|
// save fs
|
||||||
code = save_fs(fs->eid, fs->nstate, current_t);
|
code = save_fs(fs->nstate, current_t);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
|
|
|
@ -20,7 +20,7 @@ static int32_t stt_lvl_to_json(const SSttLvl *lvl, cJSON *json) {
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
cJSON *ajson = cJSON_AddArrayToObject(json, "stt");
|
cJSON *ajson = cJSON_AddArrayToObject(json, "files");
|
||||||
if (ajson == NULL) return TSDB_CODE_OUT_OF_MEMORY;
|
if (ajson == NULL) return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
|
||||||
SRBTreeIter iter = tRBTreeIterCreate(&lvl->sttTree, 1);
|
SRBTreeIter iter = tRBTreeIterCreate(&lvl->sttTree, 1);
|
||||||
|
@ -29,14 +29,10 @@ static int32_t stt_lvl_to_json(const SSttLvl *lvl, cJSON *json) {
|
||||||
|
|
||||||
cJSON *item = cJSON_CreateObject();
|
cJSON *item = cJSON_CreateObject();
|
||||||
if (item == NULL) return TSDB_CODE_OUT_OF_MEMORY;
|
if (item == NULL) return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
cJSON_AddItemToArray(ajson, item);
|
||||||
|
|
||||||
int32_t code = tsdbTFileToJson(&fobj->f, item);
|
int32_t code = tsdbTFileToJson(&fobj->f, item);
|
||||||
if (code) {
|
if (code) return code;
|
||||||
cJSON_Delete(item);
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
cJSON_AddItemToArray(ajson, item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -69,9 +65,7 @@ int32_t tsdbFileSetToJson(const STFileSet *fset, cJSON *json) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t ftype = TSDB_FTYPE_MIN; ftype < TSDB_FTYPE_MAX; ++ftype) {
|
for (int32_t ftype = TSDB_FTYPE_MIN; ftype < TSDB_FTYPE_MAX; ++ftype) {
|
||||||
if (fset->farr[ftype] == NULL) {
|
if (fset->farr[ftype] == NULL) continue;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
code = tsdbTFileToJson(&fset->farr[ftype]->f, json);
|
code = tsdbTFileToJson(&fset->farr[ftype]->f, json);
|
||||||
if (code) return code;
|
if (code) return code;
|
||||||
|
|
|
@ -203,10 +203,13 @@ int32_t tsdbTFileClear(STFile *pFile) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbTFileToJson(const STFile *file, cJSON *json) {
|
int32_t tsdbTFileToJson(const STFile *file, cJSON *json) {
|
||||||
cJSON *tjson = cJSON_AddObjectToObject(json, g_tfile_info[file->type].suffix);
|
if (file->type == TSDB_FTYPE_STT) {
|
||||||
if (tjson == NULL) return TSDB_CODE_OUT_OF_MEMORY;
|
return g_tfile_info[file->type].to_json(file, json);
|
||||||
|
} else {
|
||||||
return g_tfile_info[file->type].to_json(file, tjson);
|
cJSON *item = cJSON_AddObjectToObject(json, g_tfile_info[file->type].suffix);
|
||||||
|
if (item == NULL) return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
return g_tfile_info[file->type].to_json(file, item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbTFileFromJson(const cJSON *json, tsdb_ftype_t ftype, STFile **f) {
|
int32_t tsdbTFileFromJson(const cJSON *json, tsdb_ftype_t ftype, STFile **f) {
|
||||||
|
|
Loading…
Reference in New Issue