X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fmemslap.c;h=ff01ddc180d5bf7a6ba8e9e6e9e1871bc40d86fc;hb=270d30a47b3fb769336f8dfaeb04afb42d8c2e8c;hp=b7925b73780d8379439f78daaa316a156eaf9e1b;hpb=85a66fec1e07e874e5410ce56a2976d68fbe14fd;p=m6w6%2Flibmemcached diff --git a/src/memslap.c b/src/memslap.c index b7925b73..ff01ddc1 100644 --- a/src/memslap.c +++ b/src/memslap.c @@ -62,11 +62,14 @@ struct conclusions_st { void options_parse(int argc, char *argv[]); void conclusions_print(conclusions_st *conclusion); void scheduler(memcached_server_st *servers, conclusions_st *conclusion); -pairs_st *load_createial_data(memcached_server_st *servers, unsigned int number_of, +pairs_st *load_create_data(memcached_server_st *servers, unsigned int number_of, unsigned int *actual_loaded); +void flush_all(memcached_server_st *servers); static int opt_verbose= 0; +static int opt_flush= 0; static int opt_non_blocking_io= 0; +static int opt_tcp_nodelay= 0; static unsigned int opt_execute_number= 0; static unsigned int opt_createial_load= 0; static unsigned int opt_concurrency= 0; @@ -122,8 +125,10 @@ void scheduler(memcached_server_st *servers, conclusions_st *conclusion) pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + if (opt_flush) + flush_all(servers); if (opt_createial_load) - pairs= load_createial_data(servers, opt_createial_load, &actual_loaded); + pairs= load_create_data(servers, opt_createial_load, &actual_loaded); pthread_mutex_lock(&counter_mutex); thread_counter= 0; @@ -203,10 +208,12 @@ void options_parse(int argc, char *argv[]) {"debug", no_argument, &opt_verbose, OPT_DEBUG}, {"execute-number", required_argument, NULL, OPT_SLAP_EXECUTE_NUMBER}, {"flag", no_argument, &opt_displayflag, OPT_FLAG}, + {"flush", no_argument, &opt_flush, OPT_FLUSH}, {"help", no_argument, NULL, OPT_HELP}, {"initial-load", required_argument, NULL, OPT_SLAP_INITIAL_LOAD}, /* Number to load initially */ {"non-blocking", no_argument, &opt_non_blocking_io, OPT_SLAP_NON_BLOCK}, {"servers", required_argument, NULL, OPT_SERVERS}, + {"tcp-nodelay", no_argument, &opt_tcp_nodelay, OPT_SLAP_TCP_NODELAY}, {"test", required_argument, NULL, OPT_SLAP_TEST}, {"verbose", no_argument, &opt_verbose, OPT_VERBOSE}, {"version", no_argument, NULL, OPT_VERSION}, @@ -299,6 +306,8 @@ void *run_task(void *p) memc= memcached_create(NULL); if (opt_non_blocking_io) memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, NULL ); + if (opt_tcp_nodelay) + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_TCP_NODELAY, NULL ); memcached_server_push(memc, context->servers); @@ -333,7 +342,20 @@ void *run_task(void *p) return NULL; } -pairs_st *load_createial_data(memcached_server_st *servers, unsigned int number_of, +void flush_all(memcached_server_st *servers) +{ + memcached_st *memc; + + memc= memcached_create(NULL); + + memcached_server_push(memc, servers); + + memcached_flush(memc, 0); + + memcached_free(memc); +} + +pairs_st *load_create_data(memcached_server_st *servers, unsigned int number_of, unsigned int *actual_loaded) { memcached_st *memc;