将Maat Redis Key中rule id的类型从int调整为long。以满足盘古项目,使用compile id + group id拼接生成分组表redis key的rule id的需求。

This commit is contained in:
zhengchao
2018-10-26 10:21:33 +08:00
parent c8a83b40b5
commit 0b237a07a8
4 changed files with 10 additions and 10 deletions

View File

@@ -3,7 +3,7 @@ project(maatframe)
set(MAAT_FRAME_MAJOR_VERSION 2) set(MAAT_FRAME_MAJOR_VERSION 2)
set(MAAT_FRAME_MINOR_VERSION 3) set(MAAT_FRAME_MINOR_VERSION 3)
set(MAAT_FRAME_PATCH_VERSION 20181025) set(MAAT_FRAME_PATCH_VERSION 20181026)
set(MAAT_FRAME_VERSION ${MAAT_FRAME_MAJOR_VERSION}.${MAAT_FRAME_MINOR_VERSION}.${MAAT_FRAME_PATCH_VERSION}) set(MAAT_FRAME_VERSION ${MAAT_FRAME_MAJOR_VERSION}.${MAAT_FRAME_MINOR_VERSION}.${MAAT_FRAME_PATCH_VERSION})
message(STATUS "Maat Frame, Version: ${MAAT_FRAME_VERSION}") message(STATUS "Maat Frame, Version: ${MAAT_FRAME_VERSION}")

View File

@@ -391,7 +391,7 @@ int get_inc_key_list(long long instance_version, long long target_version, redis
for(i=0, j=0;i<reply->elements;i++) for(i=0, j=0;i<reply->elements;i++)
{ {
assert(reply->element[i]->type==REDIS_REPLY_STRING); assert(reply->element[i]->type==REDIS_REPLY_STRING);
ret=sscanf(reply->element[i]->str,"%[^,],%[^,],%d",op_str,s_rule[j].table_name,&(s_rule[j].rule_id)); ret=sscanf(reply->element[i]->str,"%[^,],%[^,],%ld",op_str,s_rule[j].table_name,&(s_rule[j].rule_id));
if(ret!=3||s_rule[i].rule_id<0) if(ret!=3||s_rule[i].rule_id<0)
{ {
MESA_handle_runtime_log(logger, RLOG_LV_FATAL, maat_redis_monitor, MESA_handle_runtime_log(logger, RLOG_LV_FATAL, maat_redis_monitor,
@@ -464,14 +464,14 @@ int recovery_history_version(const struct serial_rule_t* current, int current_nu
for(i=0;i<current_num;i++) for(i=0;i<current_num;i++)
{ {
snprintf(hkey,sizeof(hkey),"%d,%s",current[i].rule_id,current[i].table_name); snprintf(hkey,sizeof(hkey),"%ld,%s",current[i].rule_id,current[i].table_name);
ret=MESA_htable_add(htable, (uchar*)hkey, strlen(hkey), current+i); ret=MESA_htable_add(htable, (uchar*)hkey, strlen(hkey), current+i);
assert(ret>0); assert(ret>0);
} }
for(i=changed_num-1;i>=0;i--) for(i=changed_num-1;i>=0;i--)
{ {
snprintf(hkey,sizeof(hkey),"%d,%s",changed[i].rule_id,changed[i].table_name); snprintf(hkey,sizeof(hkey),"%ld,%s",changed[i].rule_id,changed[i].table_name);
if(changed[i].op==MAAT_OP_ADD)//newly added rule is need to delete from current, so that history version can be recovered. if(changed[i].op==MAAT_OP_ADD)//newly added rule is need to delete from current, so that history version can be recovered.
{ {
ret=MESA_htable_del(htable, (uchar*)hkey, strlen(hkey), NULL); ret=MESA_htable_del(htable, (uchar*)hkey, strlen(hkey), NULL);
@@ -643,7 +643,7 @@ FULL_UPDATE:
"Invalid Redis Key Type: %d", sub_reply->element[i]->type); "Invalid Redis Key Type: %d", sub_reply->element[i]->type);
continue; continue;
} }
ret=sscanf(sub_reply->element[i]->str,"%*[^:]:%[^,],%d",s_rule_array[full_idx].table_name,&(s_rule_array[full_idx].rule_id)); ret=sscanf(sub_reply->element[i]->str,"%*[^:]:%[^,],%ld",s_rule_array[full_idx].table_name,&(s_rule_array[full_idx].rule_id));
s_rule_array[full_idx].op=MAAT_OP_ADD; s_rule_array[full_idx].op=MAAT_OP_ADD;
if(ret!=2||s_rule_array[full_idx].rule_id<0||strlen(s_rule_array[full_idx].table_name)==0) if(ret!=2||s_rule_array[full_idx].rule_id<0||strlen(s_rule_array[full_idx].table_name)==0)
{ {
@@ -699,7 +699,7 @@ int _get_maat_redis_value(redisContext *c,struct serial_rule_t* rule_list,int ru
redisReply* reply=NULL; redisReply* reply=NULL;
for(i=0;i<rule_num;i++) for(i=0;i<rule_num;i++)
{ {
snprintf(redis_cmd,sizeof(redis_cmd),"GET %s:%s,%d",rm_key_prefix[rule_list[i].op] snprintf(redis_cmd,sizeof(redis_cmd),"GET %s:%s,%ld",rm_key_prefix[rule_list[i].op]
,rule_list[i].table_name ,rule_list[i].table_name
,rule_list[i].rule_id); ,rule_list[i].rule_id);
ret=redisAppendCommand(c, redis_cmd); ret=redisAppendCommand(c, redis_cmd);
@@ -739,7 +739,7 @@ int _get_maat_redis_value(redisContext *c,struct serial_rule_t* rule_list,int ru
for(i=0;i<failed_cnt;i++) for(i=0;i<failed_cnt;i++)
{ {
idx=retry_ids[i]; idx=retry_ids[i];
snprintf(redis_cmd,sizeof(redis_cmd),"GET %s:%s,%d",rm_key_prefix[MAAT_OP_DEL] snprintf(redis_cmd,sizeof(redis_cmd),"GET %s:%s,%ld",rm_key_prefix[MAAT_OP_DEL]
,rule_list[idx].table_name ,rule_list[idx].table_name
,rule_list[idx].rule_id); ,rule_list[idx].rule_id);
ret=redisAppendCommand(c, redis_cmd); ret=redisAppendCommand(c, redis_cmd);
@@ -1365,7 +1365,7 @@ void check_maat_expiration(redisContext *ctx, void *logger)
for(i=0;i<s_rule_num;i++) for(i=0;i<s_rule_num;i++)
{ {
s_rule[i].op=MAAT_OP_DEL; s_rule[i].op=MAAT_OP_DEL;
ret=sscanf(data_reply->element[i]->str,"%[^,],%d",s_rule[i].table_name,&(s_rule[i].rule_id)); ret=sscanf(data_reply->element[i]->str,"%[^,],%ld",s_rule[i].table_name,&(s_rule[i].rule_id));
assert(ret==2); assert(ret==2);
} }
freeReplyObject(data_reply); freeReplyObject(data_reply);

View File

@@ -32,7 +32,7 @@
#include "stream_fuzzy_hash.h" #include "stream_fuzzy_hash.h"
#include "gram_index_engine.h" #include "gram_index_engine.h"
int MAAT_FRAME_VERSION_2_2_20181025=1; int MAAT_FRAME_VERSION_2_2_20181026=1;
const char* CHARSET_STRING[]={"NONE","gbk","big5","unicode","utf8","bin", const char* CHARSET_STRING[]={"NONE","gbk","big5","unicode","utf8","bin",
"unicode_ascii_esc","unicode_ascii_aligned","unicode_ncr_dec","unicode_ncr_hex","url_encode_gb2312","url_encode_utf8",""}; "unicode_ascii_esc","unicode_ascii_aligned","unicode_ncr_dec","unicode_ncr_hex","url_encode_gb2312","url_encode_utf8",""};

View File

@@ -470,7 +470,7 @@ struct foreign_key
struct serial_rule_t //rm= Redis Maat struct serial_rule_t //rm= Redis Maat
{ {
enum MAAT_OPERATION op;//0: delete, 1: add. enum MAAT_OPERATION op;//0: delete, 1: add.
int rule_id; long rule_id;
int label_id; int label_id;
long long timeout; // absolute unix time. long long timeout; // absolute unix time.
char table_name[256]; char table_name[256];