void ParseArguments(int argc, char *argv[], configuration &state) { // Default Values state.scale_factor = 1; state.duration = 1000; state.backend_count = 2; // Parse args while (1) { int idx = 0; int c = getopt_long(argc, argv, "ah:b:d:k:", opts, &idx); if (c == -1) break; switch (c) { case 'b': state.backend_count = atoi(optarg); break; case 'd': state.duration = atoi(optarg); break; case 'k': state.scale_factor = atoi(optarg); break; case 'h': Usage(stderr); exit(EXIT_FAILURE); break; default: fprintf(stderr, "\nUnknown option: -%c-\n", c); Usage(stderr); exit(EXIT_FAILURE); } } // Static TPCC parameters state.warehouse_count = state.scale_factor; // 10 state.item_count = 10000; // 100000 state.districts_per_warehouse = 2; // 10 state.customers_per_district = 3000; // 3000 state.new_orders_per_district = 900; // 900 // Print configuration ValidateBackendCount(state); ValidateScaleFactor(state); ValidateDuration(state); }
void ParseArguments(int argc, char *argv[], configuration &state) { // Default Values state.index = INDEX_TYPE_BWTREE; state.scale_factor = 1; state.duration = 10; state.profile_duration = 1; state.backend_count = 2; state.warehouse_count = 2; state.exp_backoff = false; state.affinity = false; state.gc_mode = false; state.gc_backend_count = 1; // Parse args while (1) { int idx = 0; int c = getopt_long(argc, argv, "heagi:k:d:p:b:w:n:", opts, &idx); if (c == -1) break; switch (c) { case 'i': { char *index = optarg; if (strcmp(index, "btree") == 0) { state.index = INDEX_TYPE_BTREE; } else if (strcmp(index, "bwtree") == 0) { state.index = INDEX_TYPE_BWTREE; } else { LOG_ERROR("Unknown index: %s", index); exit(EXIT_FAILURE); } break; } case 'k': state.scale_factor = atof(optarg); break; case 'd': state.duration = atof(optarg); break; case 'p': state.profile_duration = atof(optarg); break; case 'b': state.backend_count = atoi(optarg); break; case 'w': state.warehouse_count = atoi(optarg); break; case 'e': state.exp_backoff = true; break; case 'a': state.affinity = true; break; case 'g': state.gc_mode = true; break; case 'n': state.gc_backend_count = atof(optarg); break; case 'h': Usage(stderr); exit(EXIT_FAILURE); break; default: LOG_ERROR("Unknown option: -%c-", c); Usage(stderr); exit(EXIT_FAILURE); } } // Static TPCC parameters state.item_count = 100000 * state.scale_factor; state.districts_per_warehouse = 10; state.customers_per_district = 3000 * state.scale_factor; state.new_orders_per_district = 900 * state.scale_factor; // Print configuration ValidateIndex(state); ValidateScaleFactor(state); ValidateDuration(state); ValidateProfileDuration(state); ValidateBackendCount(state); ValidateWarehouseCount(state); ValidateGCBackendCount(state); LOG_TRACE("%s : %d", "Run client affinity", state.run_affinity); LOG_TRACE("%s : %d", "Run exponential backoff", state.run_backoff); LOG_TRACE("%s : %d", "Run garbage collection", state.gc_mode); }
void ParseArguments(int argc, char *argv[], configuration &state) { // Default Values state.hybrid_scan_type = HYBRID_SCAN_TYPE_HYBRID; state.operator_type = OPERATOR_TYPE_DIRECT; state.scale_factor = 100.0; state.tuples_per_tilegroup = DEFAULT_TUPLES_PER_TILEGROUP; state.transactions = 1; state.selectivity = 1.0; state.projectivity = 1.0; state.layout_mode = LAYOUT_TYPE_ROW; state.experiment_type = EXPERIMENT_TYPE_INVALID; state.column_count = 500; state.write_ratio = 0.0; state.index_count = 1; state.adapt = false; // Parse args while (1) { int idx = 0; int c = getopt_long(argc, argv, "aho:k:s:p:l:t:e:c:w:g:y:i:", opts, &idx); if (c == -1) break; switch (c) { case 'o': state.operator_type = (OperatorType)atoi(optarg); break; case 'k': state.scale_factor = atoi(optarg); break; case 's': state.selectivity = atof(optarg); break; case 'p': state.projectivity = atof(optarg); break; case 'l': state.layout_mode = (LayoutType)atoi(optarg); break; case 't': state.transactions = atoi(optarg); break; case 'e': state.experiment_type = (ExperimentType)atoi(optarg); break; case 'c': state.column_count = atoi(optarg); break; case 'w': state.write_ratio = atof(optarg); break; case 'g': state.tuples_per_tilegroup = atoi(optarg); break; case 'y': state.hybrid_scan_type = (HybridScanType)atoi(optarg); break; case 'i': state.index_count = atoi(optarg); break; case 'h': Usage(); break; default: LOG_ERROR("Unknown option: -%c-", c); Usage(); } } if (state.experiment_type == EXPERIMENT_TYPE_INVALID) { // Print configuration ValidateLayout(state); ValidateHybridScanType(state); ValidateOperator(state); ValidateSelectivity(state); ValidateProjectivity(state); ValidateScaleFactor(state); ValidateColumnCount(state); ValidateIndexCount(state); ValidateWriteRatio(state); ValidateTuplesPerTileGroup(state); LOG_INFO("%s : %lu", "transactions", state.transactions); } else { ValidateExperiment(state); } // cache orig scale factor orig_scale_factor = state.scale_factor; }
void ParseArguments(int argc, char *argv[], configuration &state) { // Default Values state.operator_type = OPERATOR_TYPE_INVALID; state.scale_factor = 100.0; state.tuples_per_tilegroup = DEFAULT_TUPLES_PER_TILEGROUP; state.transactions = 1; state.selectivity = 1.0; state.projectivity = 1.0; state.layout_mode = LAYOUT_ROW; state.experiment_type = EXPERIMENT_TYPE_INVALID; state.column_count = 100; state.write_ratio = 0.0; state.access_num_groups = 1; state.subset_ratio = 1.0; state.subset_experiment_type = SUBSET_TYPE_INVALID; state.adapt = false; state.theta = 0.0; state.reorg = false; state.distribution = false; // Parse args while (1) { int idx = 0; int c = getopt_long(argc, argv, "aho:k:s:p:l:t:e:c:w:g:", opts, &idx); if (c == -1) break; switch (c) { case 'o': state.operator_type = (OperatorType)atoi(optarg); break; case 'k': state.scale_factor = atoi(optarg); break; case 's': state.selectivity = atof(optarg); break; case 'p': state.projectivity = atof(optarg); break; case 'l': state.layout_mode = (LayoutType)atoi(optarg); break; case 't': state.transactions = atoi(optarg); break; case 'e': state.experiment_type = (ExperimentType)atoi(optarg); break; case 'c': state.column_count = atoi(optarg); break; case 'w': state.write_ratio = atof(optarg); break; case 'g': state.tuples_per_tilegroup = atoi(optarg); break; case 'h': Usage(stderr); break; default: fprintf(stderr, "\nUnknown option: -%c-\n", c); Usage(stderr); } } if (state.experiment_type == EXPERIMENT_TYPE_INVALID) { // Print configuration ValidateOperator(state); ValidateLayout(state); ValidateSelectivity(state); ValidateProjectivity(state); ValidateScaleFactor(state); ValidateColumnCount(state); ValidateWriteRatio(state); ValidateTuplesPerTileGroup(state); std::cout << std::setw(20) << std::left << "transactions " << " : " << state.transactions << std::endl; } else { ValidateExperiment(state); } // cache orig scale factor orig_scale_factor = state.scale_factor; }
void ParseArguments(int argc, char *argv[], configuration &state) { // Default Values state.index = INDEX_TYPE_BWTREE; state.scale_factor = 1; state.duration = 10; state.profile_duration = 1; state.backend_count = 2; state.column_count = 10; state.operation_count = 10; state.update_ratio = 0.5; state.zipf_theta = 0.0; state.exp_backoff = false; state.string_mode = false; state.gc_mode = false; state.gc_backend_count = 1; // Parse args while (1) { int idx = 0; int c = getopt_long(argc, argv, "hemgi:k:d:p:b:c:o:u:z:n:", opts, &idx); if (c == -1) break; switch (c) { case 'i': { char *index = optarg; if (strcmp(index, "btree") == 0) { state.index = INDEX_TYPE_BTREE; } else if (strcmp(index, "bwtree") == 0) { state.index = INDEX_TYPE_BWTREE; } else { LOG_ERROR("Unknown index: %s", index); exit(EXIT_FAILURE); } break; } case 'k': state.scale_factor = atoi(optarg); break; case 'd': state.duration = atof(optarg); break; case 'p': state.profile_duration = atof(optarg); break; case 'b': state.backend_count = atoi(optarg); break; case 'c': state.column_count = atoi(optarg); break; case 'o': state.operation_count = atoi(optarg); break; case 'u': state.update_ratio = atof(optarg); break; case 'z': state.zipf_theta = atof(optarg); break; case 'e': state.exp_backoff = true; break; case 'm': state.string_mode = true; break; case 'g': state.gc_mode = true; break; case 'n': state.gc_backend_count = atof(optarg); break; case 'h': Usage(stderr); exit(EXIT_FAILURE); break; default: LOG_ERROR("Unknown option: -%c-", c); Usage(stderr); exit(EXIT_FAILURE); break; } } // Print configuration ValidateIndex(state); ValidateScaleFactor(state); ValidateDuration(state); ValidateProfileDuration(state); ValidateBackendCount(state); ValidateColumnCount(state); ValidateOperationCount(state); ValidateUpdateRatio(state); ValidateZipfTheta(state); ValidateGCBackendCount(state); LOG_TRACE("%s : %d", "Run exponential backoff", state.exp_backoff); LOG_TRACE("%s : %d", "Run string mode", state.string_mode); LOG_TRACE("%s : %d", "Run garbage collection", state.gc_mode); }