From 9e50da87d9a13506aa73024678f84149f8e91336 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michal=20Voc=C5=AF?= Date: Wed, 1 Apr 2009 21:09:21 +0000 Subject: [PATCH] added option for max event file size --- org.glite.lb.logger/src/interlogd.c | 25 ++++++++++++++++--------- org.glite.lb.logger/src/interlogd.h | 11 ++++++----- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/org.glite.lb.logger/src/interlogd.c b/org.glite.lb.logger/src/interlogd.c index b247487..e6ebded 100644 --- a/org.glite.lb.logger/src/interlogd.c +++ b/org.glite.lb.logger/src/interlogd.c @@ -80,6 +80,7 @@ char *file_prefix = DEFAULT_PREFIX; int bs_only = 0; int lazy_close = 1; int default_close_timeout; +size_t max_store_size; int parallel = 0; #ifdef LB_PERF int nosend = 0, norecover=0, nosync=0, noparse=0; @@ -107,6 +108,7 @@ static struct option const long_options[] = {"log-server", required_argument, 0, 'l'}, {"socket", required_argument, 0, 's'}, {"lazy", optional_argument, 0, 'L'}, + {"max-store", required_argument, 0, 'M'}, {"parallel", optional_argument, 0, 'p'}, #ifdef LB_PERF {"nosend", no_argument, 0, 'n'}, @@ -141,7 +143,7 @@ decode_switches (int argc, char **argv) "k:" /* key */ "C:" /* CA dir */ "b" /* only bookeeping */ - "l:" /* log server */ + "l:" /* log server */ "d" /* debug */ "p" /* parallel */ #ifdef LB_PERF @@ -153,9 +155,10 @@ decode_switches (int argc, char **argv) "e:" /* event file */ "j:" /* num jobs */ #endif -#endif +#endif "L::" /* lazy */ - "s:", /* socket */ + "s:" /* socket */ + "M:" /* max-store */, long_options, (int *) 0)) != EOF) { switch (c) @@ -205,7 +208,7 @@ decode_switches (int argc, char **argv) case 'L': lazy_close = 1; - if(optarg) + if(optarg) default_close_timeout = atoi(optarg); if(default_close_timeout == 0) { default_close_timeout = TIMEOUT; @@ -215,10 +218,14 @@ decode_switches (int argc, char **argv) default_close_timeout = TIMEOUT; break; + case 'M': + max_store_size = atoi(optarg); + break; + case 'p': - if(optarg) + if(optarg) parallel = atoi(optarg); - else + else parallel = 4; break; @@ -351,14 +358,14 @@ main (int argc, char **argv) if (ret == EDG_WLL_GSS_ERROR_GSS) edg_wll_gss_get_error(&gss_stat, "edg_wll_gss_acquire_cred_gsi()", &gss_err); asprintf(&str, "Failed to load GSI credential: %s\n", - (gss_err) ? gss_err : "edg_wll_gss_acquire_cred_gsi() failed"); + (gss_err) ? gss_err : "edg_wll_gss_acquire_cred_gsi() failed"); il_log(LOG_CRIT, str); free(str); if (gss_err) free(gss_err); exit(EXIT_FAILURE); } - + #ifndef PERF_EMPTY /* find all unsent events waiting in files */ #ifdef LB_PERF @@ -369,7 +376,7 @@ main (int argc, char **argv) } } else #endif - { + { pthread_t rid; il_log(LOG_INFO, "Starting recovery thread...\n"); diff --git a/org.glite.lb.logger/src/interlogd.h b/org.glite.lb.logger/src/interlogd.h index d3d81b6..df3ed84 100644 --- a/org.glite.lb.logger/src/interlogd.h +++ b/org.glite.lb.logger/src/interlogd.h @@ -78,6 +78,7 @@ extern int bs_only; extern int killflg; extern int lazy_close; extern int default_close_timeout; +extern size_t max_store_size; extern int parallel; #ifdef LB_PERF extern int nosend, nosync, norecover, noparse; @@ -91,7 +92,7 @@ extern char *event_source; extern pthread_mutex_t flush_lock; extern pthread_cond_t flush_cond; #endif - + typedef struct { /* il_octet_string_t */ int len; @@ -100,7 +101,7 @@ typedef struct { enum { IL_HTTP_OTHER, IL_HTTP_GET, IL_HTTP_POST, - IL_HTTP_REPLY + IL_HTTP_REPLY } msg_type; int reply_code; char *reply_string; @@ -114,7 +115,7 @@ typedef union { il_http_message_t http_msg; } il_message_t; - + struct event_store { char *event_file_name; /* file with events from local logger */ char *control_file_name; /* file with control information */ @@ -201,7 +202,7 @@ int event_queue_remove(struct event_queue *); int event_queue_enqueue(struct event_queue *, char *); /* helper */ int enqueue_msg(struct event_queue *, struct server_msg *); -int event_queue_move_events(struct event_queue *, struct event_queue *, int (*)(struct server_msg *, void *), void *); +int event_queue_move_events(struct event_queue *, struct event_queue *, int (*)(struct server_msg *, void *), void *); /* protocol event queue methods */ int event_queue_connect(struct event_queue *); @@ -244,7 +245,7 @@ int notifid_map_set_expiration(const char *, time_t); int event_store_init(char *); int event_store_cleanup(); int event_store_recover_all(void); -struct event_store *event_store_find(char *); +struct event_store *event_store_find(char *, const char * = NULL); int event_store_sync(struct event_store *, long); int event_store_next(struct event_store *, long, int); int event_store_commit(struct event_store *, int, int, int); -- 1.8.2.3