コード例 #1
0
ファイル: ycsb_query.cpp プロジェクト: apavlo/DBx1000
void ycsb_query::init(uint64_t thd_id, workload * h_wl, Query_thd * query_thd) {
	_query_thd = query_thd;
	requests = (ycsb_request *) 
		mem_allocator.alloc(sizeof(ycsb_request) * g_req_per_query, thd_id);
	part_to_access = (uint64_t *) 
		mem_allocator.alloc(sizeof(uint64_t) * g_part_per_txn, thd_id);
	zeta_2_theta = zeta(2, g_zipf_theta);
	assert(the_n != 0);
	assert(denom != 0);
	gen_requests(thd_id, h_wl);
}
コード例 #2
0
ファイル: ycsb_query.cpp プロジェクト: EvilMcJerkface/quro
void ycsb_query::init(uint64_t thd_id, workload * h_wl) {
//	mrand = (myrand *) mem_allocator.alloc(sizeof(myrand), thd_id);
//	mrand->init(thd_id);
//	cout << g_req_per_query << endl;
	requests = (ycsb_request *) 
		mem_allocator.alloc(sizeof(ycsb_request) * g_req_per_query, thd_id);
	part_to_access = (uint64_t *) 
		mem_allocator.alloc(sizeof(uint64_t) * g_part_per_txn, thd_id);
	zeta_2_theta = zeta(2, g_zipf_theta);
	if (the_n == 0) {
		//uint64_t table_size = g_synth_table_size / g_part_cnt;
		uint64_t table_size = g_synth_table_size / g_virtual_part_cnt;
		the_n = table_size - 1;
		denom = zeta(the_n, g_zipf_theta);
	}
	gen_requests(thd_id, h_wl);
}
コード例 #3
0
ファイル: datacenter.c プロジェクト: ankitsrivastava108/cse
int request_vcores_datacenter(provider *pv, int ndatacenter, event *ev){
    
    int pattern=1;
    int res, size;
    float hv = 0.0;
    long f1 = 0;
    long f2 = 0;
    long ptotal = 0;
    long pmin = 0;
    application *app = NULL;
    app_frontend *app_fe;
    size = ev->sizel1 + ev->sizel2 + ev->sizel3;
    int *assigned_vcores = malloc(sizeof(int)*size);
    init_application(pv, &app, ev);
    switch(pv->datacenters[ndatacenter].allocation_policy){
	case FF: 
	    res = request_vcores_network_ff(pv,ndatacenter,size,assigned_vcores, app->str.maxbw);
	    break;
	case RR: 
	    res = request_vcores_network_rr(pv,ndatacenter,size,assigned_vcores, app->str.maxbw);
	    break;

	default:
	    panic("No policy selected");
    }
    if(res == 1){
	switch(pv->datacenters[ndatacenter].optimization_alg){
	    case NONE:
		allocate_vcores_network(pv, ndatacenter, size, assigned_vcores, app->id, app->str.maxbw);
		break;
	    case NSGA2:
	    case SPEA2:
	    case HYPE:
	    case SHV:
		    hv = optimize(pv->datacenters[ndatacenter].optimization_alg, alpha, mu, lambda, dim, tournament, ngen, mtype, cotype, pmut, pmuttopo, pco, pcotopo, size, assigned_vcores, pv, ndatacenter, app);
		allocate_vcores_network(pv, ndatacenter, size, assigned_vcores, app->id, app->str.maxbw);
		break;
	    default:
		panic("datacenter: no optimization algorithm");
	}
	f1 = eval_cores_f1(assigned_vcores, size, pv->datacenters[ndatacenter].nw, app->str.bw);
	f2 = eval_cores_f2(assigned_vcores, size, pv->datacenters[ndatacenter].nw);
	ptotal = on_servers_total(pv->datacenters[ndatacenter].nw, assigned_vcores, size);
	pmin = eval_pmin_constrained(size, app->str.maxbw);
	f1_metric(pv, ndatacenter, f1);
	f2_metric(pv, ndatacenter, f2);
	ptotal_metric(pv, ndatacenter, ptotal); 
	pmin_metric(pv, ndatacenter, pmin);
	hv_metric(pv, ndatacenter, hv);
	
	//write_opt(f1,f2,ptotal);
	change_assigned_cores(app, assigned_vcores);	
	//printApplication(app);
	app_fe = add_app_lb(pv, app);
	change_app_fe(app, app_fe);
	allocate_application(pv, ndatacenter, app);
	if(ev->requests){
	    gen_requests(pv, app->id, app->type, app->etime, app_fe, app->rtime, pattern, app->maxreq, app->req_chunk,0,0);
	}
	num_applications_metric(pv, ndatacenter);
    }
    else{

	free(assigned_vcores);
	rem_application(app);
    }
    
    return(res);    
}