优化maat_redis_tool在dump内容外键时的printf输出。
This commit is contained in:
@@ -1563,7 +1563,7 @@ struct foreign_conts_track
|
|||||||
int rule_idx;
|
int rule_idx;
|
||||||
int foreign_idx;
|
int foreign_idx;
|
||||||
};
|
};
|
||||||
void _get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, void *logger)
|
void _get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, int print_fn, void *logger)
|
||||||
{
|
{
|
||||||
int i=0, j=0, ret=0;
|
int i=0, j=0, ret=0;
|
||||||
int key_num=0;
|
int key_num=0;
|
||||||
@@ -1620,6 +1620,10 @@ void _get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int
|
|||||||
fwrite(reply->str, 1, reply->len, fp);
|
fwrite(reply->str, 1, reply->len, fp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
fp=NULL;
|
fp=NULL;
|
||||||
|
if(print_fn==1)
|
||||||
|
{
|
||||||
|
printf("Written foreign content %s\n",p->f_keys[track[i].foreign_idx].filename);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
freeReplyObject(reply);
|
freeReplyObject(reply);
|
||||||
@@ -1627,14 +1631,14 @@ void _get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int
|
|||||||
free(track);
|
free(track);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
void get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, void *logger)
|
void get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, int print_fn, void *logger)
|
||||||
{
|
{
|
||||||
int max_redis_batch=4*1024,batch_cnt=0;
|
int max_redis_batch=4*1024,batch_cnt=0;
|
||||||
int success_cnt=0;
|
int success_cnt=0;
|
||||||
while(success_cnt<rule_num)
|
while(success_cnt<rule_num)
|
||||||
{
|
{
|
||||||
batch_cnt=MIN(rule_num-success_cnt,max_redis_batch);
|
batch_cnt=MIN(rule_num-success_cnt,max_redis_batch);
|
||||||
_get_foreign_conts(ctx,rule_list+success_cnt,batch_cnt,logger);
|
_get_foreign_conts(ctx,rule_list+success_cnt,batch_cnt,print_fn,logger);
|
||||||
success_cnt+=batch_cnt;
|
success_cnt+=batch_cnt;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -1702,7 +1706,7 @@ void redis_monitor_traverse(long long version,redisContext *c,
|
|||||||
}
|
}
|
||||||
ret=get_foreign_keys_define(c, rule_list, rule_num, feather, feather->foreign_cont_dir, logger);
|
ret=get_foreign_keys_define(c, rule_list, rule_num, feather, feather->foreign_cont_dir, logger);
|
||||||
if(ret>0)
|
if(ret>0)
|
||||||
{
|
{
|
||||||
get_foreign_conts(c, rule_list, rule_num, 0, logger);
|
get_foreign_conts(c, rule_list, rule_num, 0, logger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3009,6 +3009,13 @@ void garbage_bury(MESA_lqueue_head garbage_q,int timeout,void *logger)
|
|||||||
"Foreign content file %s remove failed.",
|
"Foreign content file %s remove failed.",
|
||||||
bag->filename);
|
bag->filename);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
MESA_handle_runtime_log(logger,RLOG_LV_DEBUG,maat_module,
|
||||||
|
"Foreign content file %s remove success.",
|
||||||
|
bag->filename);
|
||||||
|
}
|
||||||
free(bag->filename);
|
free(bag->filename);
|
||||||
bag->filename=NULL;
|
bag->filename=NULL;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ redisReply *_wrap_redisCommand(redisContext *c, const char *format, ...);
|
|||||||
int get_rm_key_list(redisContext *c, long long instance_version, long long desired_version, long long* new_version, struct serial_rule_t** list,int *update_type, void* logger, int cumulative_off);
|
int get_rm_key_list(redisContext *c, long long instance_version, long long desired_version, long long* new_version, struct serial_rule_t** list,int *update_type, void* logger, int cumulative_off);
|
||||||
int get_maat_redis_value(redisContext *c,struct serial_rule_t* rule_list,int rule_num,void* logger,int print_process);
|
int get_maat_redis_value(redisContext *c,struct serial_rule_t* rule_list,int rule_num,void* logger,int print_process);
|
||||||
int get_foreign_keys_by_prefix(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, const char* dir,void *logger);
|
int get_foreign_keys_by_prefix(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, const char* dir,void *logger);
|
||||||
void get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, void *logger);
|
void get_foreign_conts(redisContext *ctx, struct serial_rule_t* rule_list, int rule_num, int print_fn, void *logger);
|
||||||
void rewrite_table_line_with_foreign(struct serial_rule_t*p);
|
void rewrite_table_line_with_foreign(struct serial_rule_t*p);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -91,6 +91,10 @@ void read_rule_from_redis(redisContext * ctx, long long desire_version, const ch
|
|||||||
|
|
||||||
assert(update_type==CM_UPDATE_TYPE_FULL);
|
assert(update_type==CM_UPDATE_TYPE_FULL);
|
||||||
printf("MAAT Version: %lld, key number: %d\n", version, rule_num);
|
printf("MAAT Version: %lld, key number: %d\n", version, rule_num);
|
||||||
|
if(rule_num==0)
|
||||||
|
{
|
||||||
|
goto clean_up;
|
||||||
|
}
|
||||||
printf("Reading value: ");
|
printf("Reading value: ");
|
||||||
ret=get_maat_redis_value(ctx,rule_list,rule_num,logger,1);
|
ret=get_maat_redis_value(ctx,rule_list,rule_num,logger,1);
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
@@ -117,8 +121,8 @@ void read_rule_from_redis(redisContext * ctx, long long desire_version, const ch
|
|||||||
ret=get_foreign_keys_by_prefix(ctx, rule_list, rule_num, foreign_files_dir, logger);
|
ret=get_foreign_keys_by_prefix(ctx, rule_list, rule_num, foreign_files_dir, logger);
|
||||||
if(ret>0)
|
if(ret>0)
|
||||||
{
|
{
|
||||||
printf("Getting %d foreign content.\n", ret);
|
printf("%d lines has foreign content.\n", ret);
|
||||||
get_foreign_conts(ctx, rule_list, rule_num, logger);
|
get_foreign_conts(ctx, rule_list, rule_num, 1, logger);
|
||||||
}
|
}
|
||||||
snprintf(index_path,sizeof(index_path),"%s/full_config_index.%020lld",output_path,version);
|
snprintf(index_path,sizeof(index_path),"%s/full_config_index.%020lld",output_path,version);
|
||||||
index_fp=fopen(index_path,"w");
|
index_fp=fopen(index_path,"w");
|
||||||
@@ -143,6 +147,7 @@ void read_rule_from_redis(redisContext * ctx, long long desire_version, const ch
|
|||||||
table_fp=NULL;
|
table_fp=NULL;
|
||||||
set_file_rulenum(table_path,line_count, logger);
|
set_file_rulenum(table_path,line_count, logger);
|
||||||
line_count=0;
|
line_count=0;
|
||||||
|
printf("Written table %s\n",table_path);
|
||||||
}
|
}
|
||||||
snprintf(table_path,sizeof(table_path),"%s/%s.%020lld",output_path,rule_list[i].table_name,version);
|
snprintf(table_path,sizeof(table_path),"%s/%s.%020lld",output_path,rule_list[i].table_name,version);
|
||||||
set_file_rulenum(table_path, 0, logger);
|
set_file_rulenum(table_path, 0, logger);
|
||||||
@@ -152,7 +157,7 @@ void read_rule_from_redis(redisContext * ctx, long long desire_version, const ch
|
|||||||
printf("Open %s failed.\n",table_path);
|
printf("Open %s failed.\n",table_path);
|
||||||
goto clean_up;
|
goto clean_up;
|
||||||
}
|
}
|
||||||
printf("Writing %s\n",table_path);
|
|
||||||
cur_table=rule_list[i].table_name;
|
cur_table=rule_list[i].table_name;
|
||||||
}
|
}
|
||||||
fprintf(table_fp,"%s\tkey=%d\n",rule_list[i].table_line,rule_list[i].rule_id);
|
fprintf(table_fp,"%s\tkey=%d\n",rule_list[i].table_line,rule_list[i].rule_id);
|
||||||
@@ -163,7 +168,7 @@ void read_rule_from_redis(redisContext * ctx, long long desire_version, const ch
|
|||||||
fprintf(index_fp,"%s\t%d\t%s\n",cur_table,line_count,table_path);
|
fprintf(index_fp,"%s\t%d\t%s\n",cur_table,line_count,table_path);
|
||||||
set_file_rulenum(table_path,line_count, logger);
|
set_file_rulenum(table_path,line_count, logger);
|
||||||
|
|
||||||
printf("Writing complete: %s\n",index_path);
|
printf("Written complete: %s\n",index_path);
|
||||||
clean_up:
|
clean_up:
|
||||||
for(i=0;i<rule_num;i++)
|
for(i=0;i<rule_num;i++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user