mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Change "tps" to "scale" to avoid confusion
Fix bug with handling default scaling factor in the default scenarios
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.53 2006/08/15 13:05:30 ishii Exp $
|
||||
* $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.54 2006/09/13 00:39:19 ishii Exp $
|
||||
*
|
||||
* pgbench: a simple benchmark program for PostgreSQL
|
||||
* written by Tatsuo Ishii
|
||||
@ -58,10 +58,10 @@ int nclients = 1; /* default number of simulated clients */
|
||||
int nxacts = 10; /* default number of transactions per clients */
|
||||
|
||||
/*
|
||||
* scaling factor. for example, tps = 10 will make 1000000 tuples of
|
||||
* scaling factor. for example, scale = 10 will make 1000000 tuples of
|
||||
* accounts table.
|
||||
*/
|
||||
int tps = 1;
|
||||
int scale = 1;
|
||||
|
||||
/*
|
||||
* end of configurable parameters
|
||||
@ -134,9 +134,9 @@ int num_files; /* its number */
|
||||
|
||||
/* default scenario */
|
||||
static char *tpc_b = {
|
||||
"\\set nbranches :tps\n"
|
||||
"\\set ntellers 10 * :tps\n"
|
||||
"\\set naccounts 100000 * :tps\n"
|
||||
"\\set nbranches :scale\n"
|
||||
"\\set ntellers 10 * :scale\n"
|
||||
"\\set naccounts 100000 * :scale\n"
|
||||
"\\setrandom aid 1 :naccounts\n"
|
||||
"\\setrandom bid 1 :nbranches\n"
|
||||
"\\setrandom tid 1 :ntellers\n"
|
||||
@ -152,9 +152,9 @@ static char *tpc_b = {
|
||||
|
||||
/* -N case */
|
||||
static char *simple_update = {
|
||||
"\\set nbranches :tps\n"
|
||||
"\\set ntellers 10 * :tps\n"
|
||||
"\\set naccounts 100000 * :tps\n"
|
||||
"\\set nbranches :scale\n"
|
||||
"\\set ntellers 10 * :scale\n"
|
||||
"\\set naccounts 100000 * :scale\n"
|
||||
"\\setrandom aid 1 :naccounts\n"
|
||||
"\\setrandom bid 1 :nbranches\n"
|
||||
"\\setrandom tid 1 :ntellers\n"
|
||||
@ -168,7 +168,7 @@ static char *simple_update = {
|
||||
|
||||
/* -S case */
|
||||
static char *select_only = {
|
||||
"\\set naccounts 100000 * :tps\n"
|
||||
"\\set naccounts 100000 * :scale\n"
|
||||
"\\setrandom aid 1 :naccounts\n"
|
||||
"SELECT abalance FROM accounts WHERE aid = :aid;\n"
|
||||
};
|
||||
@ -338,10 +338,13 @@ putVariable(CState * st, char *name, char *value)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((value = strdup(value)) == NULL)
|
||||
char *val;
|
||||
|
||||
if ((val = strdup(value)) == NULL)
|
||||
return false;
|
||||
|
||||
free(var->value);
|
||||
var->value = value;
|
||||
var->value = val;
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -755,7 +758,7 @@ init(void)
|
||||
}
|
||||
PQclear(res);
|
||||
|
||||
for (i = 0; i < nbranches * tps; i++)
|
||||
for (i = 0; i < nbranches * scale; i++)
|
||||
{
|
||||
snprintf(sql, 256, "insert into branches(bid,bbalance) values(%d,0)", i + 1);
|
||||
res = PQexec(con, sql);
|
||||
@ -767,7 +770,7 @@ init(void)
|
||||
PQclear(res);
|
||||
}
|
||||
|
||||
for (i = 0; i < ntellers * tps; i++)
|
||||
for (i = 0; i < ntellers * scale; i++)
|
||||
{
|
||||
snprintf(sql, 256, "insert into tellers(tid,bid,tbalance) values (%d,%d,0)"
|
||||
,i + 1, i / ntellers + 1);
|
||||
@ -792,7 +795,7 @@ init(void)
|
||||
* occupy accounts table with some data
|
||||
*/
|
||||
fprintf(stderr, "creating tables...\n");
|
||||
for (i = 0; i < naccounts * tps; i++)
|
||||
for (i = 0; i < naccounts * scale; i++)
|
||||
{
|
||||
int j = i + 1;
|
||||
|
||||
@ -1133,7 +1136,7 @@ printResults(
|
||||
s = "Custom query";
|
||||
|
||||
printf("transaction type: %s\n", s);
|
||||
printf("scaling factor: %d\n", tps);
|
||||
printf("scaling factor: %d\n", scale);
|
||||
printf("number of clients: %d\n", nclients);
|
||||
printf("number of transactions per client: %d\n", nxacts);
|
||||
printf("number of transactions actually processed: %d/%d\n", normal_xacts, nxacts * nclients);
|
||||
@ -1175,6 +1178,8 @@ main(int argc, char **argv)
|
||||
PGresult *res;
|
||||
char *env;
|
||||
|
||||
char val[64];
|
||||
|
||||
if ((env = getenv("PGHOST")) != NULL && *env != '\0')
|
||||
pghost = env;
|
||||
if ((env = getenv("PGPORT")) != NULL && *env != '\0')
|
||||
@ -1248,10 +1253,10 @@ main(int argc, char **argv)
|
||||
is_connect = 1;
|
||||
break;
|
||||
case 's':
|
||||
tps = atoi(optarg);
|
||||
if (tps <= 0)
|
||||
scale = atoi(optarg);
|
||||
if (scale <= 0)
|
||||
{
|
||||
fprintf(stderr, "invalid scaling factor: %d\n", tps);
|
||||
fprintf(stderr, "invalid scaling factor: %d\n", scale);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@ -1323,12 +1328,10 @@ main(int argc, char **argv)
|
||||
|
||||
remains = nclients;
|
||||
|
||||
if (getVariable(&state[0], "tps") == NULL)
|
||||
if (getVariable(&state[0], "scale") == NULL)
|
||||
{
|
||||
char val[64];
|
||||
|
||||
snprintf(val, sizeof(val), "%d", tps);
|
||||
if (putVariable(&state[0], "tps", val) == false)
|
||||
snprintf(val, sizeof(val), "%d", scale);
|
||||
if (putVariable(&state[0], "scale", val) == false)
|
||||
{
|
||||
fprintf(stderr, "Couldn't allocate memory for variable\n");
|
||||
exit(1);
|
||||
@ -1405,13 +1408,20 @@ main(int argc, char **argv)
|
||||
fprintf(stderr, "%s", PQerrorMessage(con));
|
||||
exit(1);
|
||||
}
|
||||
tps = atoi(PQgetvalue(res, 0, 0));
|
||||
if (tps < 0)
|
||||
scale = atoi(PQgetvalue(res, 0, 0));
|
||||
if (scale < 0)
|
||||
{
|
||||
fprintf(stderr, "count(*) from branches invalid (%d)\n", tps);
|
||||
fprintf(stderr, "count(*) from branches invalid (%d)\n", scale);
|
||||
exit(1);
|
||||
}
|
||||
PQclear(res);
|
||||
|
||||
snprintf(val, sizeof(val), "%d", scale);
|
||||
if (putVariable(&state[0], "scale", val) == false)
|
||||
{
|
||||
fprintf(stderr, "Couldn't allocate memory for variable\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_no_vacuum)
|
||||
|
Reference in New Issue
Block a user