3 * Author: Mingqiang Zhuang
5 * Created on February 10, 2009
7 * (c) Copyright 2009, Schooner Information Technology, Inc.
8 * http://www.schoonerinfotech.com/
24 #include "../config.h"
32 /* command line option */
38 OPT_EXECUTE_NUMBER
= 'x',
39 OPT_THREAD_NUMBER
= 'T',
40 OPT_CONCURRENCY
= 'c',
43 OPT_GETS_DIVISION
= 'd',
46 OPT_WINDOW_SIZE
= 'w',
51 OPT_FACEBOOK_TEST
= 'a',
52 OPT_SOCK_PER_CONN
= 'n',
53 OPT_BINARY_PROTOCOL
= 'B',
56 OPT_REP_WRITE_SRV
= 'p',
59 /* global statistic of response time */
60 typedef struct statistic
{
61 pthread_mutex_t stat_mutex
; /* synchronize the following members */
63 ms_stat_t get_stat
; /* statistics of get command */
64 ms_stat_t set_stat
; /* statistics of set command */
65 ms_stat_t total_stat
; /* statistics of both get and set commands */
68 /* global status statistic structure */
69 typedef struct stats
{
70 int32_t active_conns
; /* active connections */
71 uint64_t bytes_read
; /* read bytes */
72 uint64_t bytes_written
; /* written bytes */
73 uint64_t obj_bytes
; /* object bytes */
74 uint64_t pre_cmd_get
; /* previous total get command count */
75 uint64_t pre_cmd_set
; /* previous total set command count */
76 uint64_t cmd_get
; /* current total get command count */
77 uint64_t cmd_set
; /* current total set command count */
78 uint64_t get_misses
; /* total objects of get miss */
79 uint64_t vef_miss
; /* total objects of verification miss */
80 uint64_t vef_failed
; /* total objects of verification failed */
81 uint64_t unexp_unget
; /* total objects which is unexpired but not get */
82 uint64_t exp_get
; /* total objects which is expired but get */
83 uint64_t pkt_disorder
; /* disorder packages of UDP */
84 uint64_t pkt_drop
; /* packages dropped of UDP */
85 uint64_t udp_timeout
; /* how many times timeout of UDP happens */
89 typedef struct sync_lock
{
95 /* global variable structure */
96 typedef struct global
{
97 /* synchronize lock */
98 ms_sync_lock_t init_lock
;
99 ms_sync_lock_t run_lock
;
101 /* mutex for outputing error log synchronously when memslap crashes */
102 pthread_mutex_t quit_mutex
;
104 /* mutex for generating key prefix */
105 pthread_mutex_t seq_mutex
;
107 /* global synchronous flags for slap mode */
112 /* global structure */
113 ms_global_t ms_global
;
115 /* global stats information structure */
118 /* global statistic structure */
119 ms_statistic_t ms_statistic
;
125 #endif /* end of MS_MEMSLAP_H */