- ms_setting.total_key_rng_cnt = KEY_RANGE_COUNT_INIT;
- ms_setting.key_distr = (ms_key_distr_t *)malloc((uint64_t)ms_setting.total_key_rng_cnt
- * sizeof(ms_key_distr_t));
- if (ms_setting.key_distr == NULL) {
- fprintf(stderr, "Can't allocate key distribution structure.\n");
- exit(1);
- }
-
- ms_setting.total_val_rng_cnt = VALUE_RANGE_COUNT_INIT;
- ms_setting.value_distr = (ms_value_distr_t *)malloc((uint64_t)ms_setting.total_val_rng_cnt
- * sizeof(ms_value_distr_t));
- if (ms_setting.value_distr == NULL) {
- fprintf(stderr, "Can't allocate value distribution structure.\n");
- exit(1);
- }
-
- ms_parse_cfg_file(ms_setting.cfg_file);
-
- /* run time mode */
- if (ms_setting.exec_num == 0 && ms_setting.run_time != 0) {
- ms_setting.exec_num = (int64_t)MAX_EXEC_NUM;
- } else {
- /* execute number mode */
- ms_setting.run_time = 0;
- }
-
- if (ms_setting.rep_write_srv > 0) {
- /* for replication test, need enable reconnect feature */
- ms_setting.reconnect = true;
- }
-
- if (ms_setting.facebook_test && ms_setting.mult_key_num < 2) {
- fprintf(stderr, "facebook test must work with multi-get, "
- "please specify multi-get key number "
- "with '--division' option.\n");
- exit(1);
- }
-
- if (ms_setting.facebook_test && ms_setting.udp) {
- fprintf(stderr, "facebook test couldn't work with UDP.\n");
- exit(1);
- }
-
- if (ms_setting.udp && ms_setting.sock_per_conn > 1) {
- fprintf(stderr, "UDP doesn't support multi-socks "
- "in one connection structure.\n");
- exit(1);
- }
-
- if ((ms_setting.udp || ms_setting.facebook_test) && ms_setting.binary_prot) {
- fprintf(stderr, "Binary protocol doesn't support UDP now.\n");
- exit(1);
- }
+ ms_setting.total_key_rng_cnt= KEY_RANGE_COUNT_INIT;
+ ms_setting.key_distr=
+ (ms_key_distr_t *)malloc((size_t)ms_setting.total_key_rng_cnt * sizeof(ms_key_distr_t));
+
+ if (ms_setting.key_distr == NULL)
+ {
+ fprintf(stderr, "Can't allocate key distribution structure.\n");
+ exit(1);
+ }
+
+ ms_setting.total_val_rng_cnt= VALUE_RANGE_COUNT_INIT;
+
+ ms_setting.value_distr=
+ (ms_value_distr_t *)malloc((size_t)ms_setting.total_val_rng_cnt * sizeof( ms_value_distr_t));
+
+ if (ms_setting.value_distr == NULL)
+ {
+ fprintf(stderr, "Can't allocate value distribution structure.\n");
+ exit(1);
+ }
+
+ ms_parse_cfg_file(ms_setting.cfg_file);
+
+ /* run time mode */
+ if ((ms_setting.exec_num == 0) && (ms_setting.run_time != 0))
+ {
+ ms_setting.exec_num= (int64_t)MAX_EXEC_NUM;
+ }
+ else
+ {
+ /* execute number mode */
+ ms_setting.run_time= 0;
+ }
+
+ if (ms_setting.rep_write_srv > 0)
+ {
+ /* for replication test, need enable reconnect feature */
+ ms_setting.reconnect= true;
+ }
+
+ if (ms_setting.facebook_test && (ms_setting.mult_key_num < 2))
+ {
+ fprintf(stderr, "facebook test must work with multi-get, "
+ "please specify multi-get key number "
+ "with '--division' option.\n");
+ exit(1);
+ }
+
+ if (ms_setting.facebook_test && ms_setting.udp)
+ {
+ fprintf(stderr, "facebook test couldn't work with UDP.\n");
+ exit(1);
+ }
+
+ if (ms_setting.udp && (ms_setting.sock_per_conn > 1))
+ {
+ fprintf(stderr, "UDP doesn't support multi-socks "
+ "in one connection structure.\n");
+ exit(1);
+ }
+
+ if ((ms_setting.rep_write_srv > 0) && (ms_setting.srv_cnt < 2))
+ {
+ fprintf(stderr, "Please specify 2 servers at least for replication\n");
+ exit(1);
+ }
+
+ if ((ms_setting.rep_write_srv > 0)
+ && (ms_setting.srv_cnt < ms_setting.rep_write_srv))
+ {
+ fprintf(stderr, "Servers to do replication writing "
+ "is larger than the total servers\n");
+ exit(1);
+ }
+
+ if (ms_setting.udp && (ms_setting.rep_write_srv > 0))
+ {
+ fprintf(stderr, "UDP doesn't support replication.\n");
+ exit(1);
+ }
+
+ if (ms_setting.facebook_test && (ms_setting.rep_write_srv > 0))
+ {
+ fprintf(stderr, "facebook test couldn't work with replication.\n");
+ exit(1);
+ }
+
+ ms_build_distr();
+
+ /* initialize global character block */
+ ms_init_random_block();
+ ms_print_setting();
+} /* ms_setting_slapmode_init_post */