Example #1
0
int driver (int t_num)
{

    int i, j;

    /* Actually, WaitTimes are needed... */
    while( activate_transaction ){
      switch(seq_get()){
      case 0:
	do_neword(t_num);
	break;
      case 1:
	do_payment(t_num);
	break;
      case 2:
	do_ordstat(t_num);
	break;
      case 3:
	do_delivery(t_num);
	break;
      case 4:
	do_slev(t_num);
	break;
      default:
	printf("Error - Unknown sequence.\n");
      }
    }

    return(0);

}
Example #2
0
int driver (int t_num)
{
    int i, j;

    double current_seconds = 0;
    long current_transactions = 0;
    double current_tps = 0;
    struct timeval currentTV;
    

    

    /* Actually, WaitTimes are needed... */
    while( activate_transaction ){
    
        // tmc : add rate limiting    
        if (t_num == 0)
        {
          gettimeofday(&currentTV, NULL); 
          current_seconds = currentTV.tv_sec + (currentTV.tv_usec/1000000);
          if (current_seconds > (rate_last_seconds + transaction_interval))
          { 
            rate_last_seconds = current_seconds; 
            rate_last_transactions = success[0];
          } 
        }

        // check current rate and tarpit if necessary
        gettimeofday(&currentTV, NULL); 
        current_seconds = currentTV.tv_sec + (currentTV.tv_usec/1000000);
        current_transactions = success[0];
        current_tps = ((current_transactions - rate_last_transactions) / (current_seconds - rate_last_seconds) * transaction_interval);

//            if (t_num == 1)
//            {
//              printf("thread %d : tps = %f\n",t_num,current_tps);
//              printf("thread %d : tps = %f : cur_secs = %f : last_secs = %f : cur_txn = %f : last_txn = %f\n",t_num,current_tps,current_seconds,rate_last_seconds,current_transactions,rate_last_transactions);
//            }

        while (current_tps > num_neword_per_10_sec)
        {
          usleep(100000);
          gettimeofday(&currentTV, NULL); 
          current_seconds = currentTV.tv_sec + (currentTV.tv_usec/1000000);
          current_transactions = success[0];
          current_tps = ((current_transactions - rate_last_transactions) / (current_seconds - rate_last_seconds) * transaction_interval);
        }
    
    
    
      switch(seq_get()){
      case 0:
	do_neword(t_num);
	break;
      case 1:
	do_payment(t_num);
	break;
      case 2:
	do_ordstat(t_num);
	break;
      case 3:
	do_delivery(t_num);
	break;
      case 4:
	do_slev(t_num);
	break;
      default:
	printf("Error - Unknown sequence.\n");
      }

    }

    return(0);

}
Example #3
0
int driver (int t_num)
{
    int i, j;
#ifdef OUT_PERIOD
 outputLog("d0|");
#endif

    /* Actually, WaitTimes are needed... */
    while( activate_transaction ){
      switch(seq_get()){
      case 0:
#ifdef OUT_PERIOD
 outputLog("d1|");
#endif
	do_neword(t_num);
#ifdef OUT_PERIOD
 outputLog("d1e|");
#endif
	break;
      case 1:
#ifdef OUT_PERIOD
 outputLog("d2|");
#endif
	do_payment(t_num);
#ifdef OUT_PERIOD
 outputLog("d2e|");
#endif
	break;
      case 2:
#ifdef OUT_PERIOD
 outputLog("d3|");
#endif
	do_ordstat(t_num);
#ifdef OUT_PERIOD
 outputLog("d3e|");
#endif
	break;
      case 3:
#ifdef OUT_PERIOD
 outputLog("d4|");
#endif
	do_delivery(t_num);
#ifdef OUT_PERIOD
 outputLog("d4e|");
#endif
	break;
      case 4:
#ifdef OUT_PERIOD
 outputLog("d5|");
#endif
	do_slev(t_num);
#ifdef OUT_PERIOD
 outputLog("d5e|");
#endif
	break;
      default:
#ifdef OUT_PERIOD
 outputLog("d6|");
#endif
	printf("Error - Unknown sequence.\n");
      }

    }

    return(0);

}