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;
{"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'},
"k:" /* key */
"C:" /* CA dir */
"b" /* only bookeeping */
- "l:" /* log server */
+ "l:" /* log server */
"d" /* debug */
"p" /* parallel */
#ifdef LB_PERF
"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)
case 'L':
lazy_close = 1;
- if(optarg)
+ if(optarg)
default_close_timeout = atoi(optarg);
if(default_close_timeout == 0) {
default_close_timeout = TIMEOUT;
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;
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
}
} else
#endif
- {
+ {
pthread_t rid;
il_log(LOG_INFO, "Starting recovery thread...\n");
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;
extern pthread_mutex_t flush_lock;
extern pthread_cond_t flush_cond;
#endif
-
+
typedef struct {
/* il_octet_string_t */
int len;
enum { IL_HTTP_OTHER,
IL_HTTP_GET,
IL_HTTP_POST,
- IL_HTTP_REPLY
+ IL_HTTP_REPLY
} msg_type;
int reply_code;
char *reply_string;
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 */
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 *);
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);