From ea21eea6a83664d03f0c08489d9d33bcb141f0df Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii <ishii@postgresql.org> Date: Wed, 13 Sep 2006 00:39:19 +0000 Subject: [PATCH] Change "tps" to "scale" to avoid confusion Fix bug with handling default scaling factor in the default scenarios --- contrib/pgbench/README.pgbench | 14 +++++-- contrib/pgbench/README.pgbench_jis | 14 ++++--- contrib/pgbench/pgbench.c | 64 +++++++++++++++++------------- 3 files changed, 56 insertions(+), 36 deletions(-) diff --git a/contrib/pgbench/README.pgbench b/contrib/pgbench/README.pgbench index 9ad30b317d..c96f0851a4 100644 --- a/contrib/pgbench/README.pgbench +++ b/contrib/pgbench/README.pgbench @@ -184,7 +184,7 @@ o -f option example: - \set ntellers 10 * :tps + \set ntellers 10 * :scale \setrandom name min max @@ -206,9 +206,9 @@ o -f option Example, TPC-B like benchmark can be defined as follows(scaling factor = 1): -\set nbranches :tps -\set ntellers 10 * :tps -\set naccounts 100000 * :tps +\set nbranches :scale +\set ntellers 10 * :scale +\set naccounts 100000 * :scale \setrandom aid 1 :naccounts \setrandom bid 1 :nbranches \setrandom tid 1 :ntellers @@ -235,6 +235,12 @@ Basically it is same as BSD license. See pgbench.c for more details. o History +2006/09/14 + * change "tps" to "scale" to avoid confusion + + * fix bug with handling default scaling factor in the default + scenarios + 2006/07/26 * New features contributed by Tomoaki Sato. diff --git a/contrib/pgbench/README.pgbench_jis b/contrib/pgbench/README.pgbench_jis index 37bd4d9280..0faa30de68 100644 --- a/contrib/pgbench/README.pgbench_jis +++ b/contrib/pgbench/README.pgbench_jis @@ -73,7 +73,7 @@ pgbench $B$K$O$$$m$$$m$J%*%W%7%g%s$,$"$j$^$9!%(B $BBg$-$5$,(B 10$BK|(B x [$B%9%1!<%j%s%0%U%!%/%?!<(B]$B$K$J$j$^$9!%(B $B%G%U%)%k%H$N%9%1!<%j%s%0%U%!%/%?!<$O(B 1 $B$G$9!%(B -f $B%*%W%7%g%s$G;XDj$7$?%U%!%$%k$+$i%9%1!<%j%s%0%U%!%/(B - $B%?!<$r;2>H$9$k$K$O(B tps $B$H$$$&JQ?tL>$r;HMQ$7$^$9!%(B + $B%?!<$r;2>H$9$k$K$O(B scale $B$H$$$&JQ?tL>$r;HMQ$7$^$9!%(B -D varname=value @@ -223,7 +223,7 @@ pgbench $B$G$O!$0J2<$N%7!<%1%s%9$rA4It40N;$7$F(B1$B%H%i%s%6%/%7%g%s$H?t$($F( $BJQ?t$K1i;;$N7k2L$r@_Dj$9$k$K$O!$(B\set $B%a%?%3%^%s%I$r;HMQ$7$F0J(B $B2<$N$h$&$K5-=R$7$^$9!%(B - \set ntellers 10 * :tps + \set ntellers 10 * :tp $B$3$l$O!$JQ?t(B ntellers $B$K%9%1!<%j%s%0%U%!%/%?!<(B (-s $B%*%W%7%g%s(B $B$G;XDj$7$?(B) $B$r(B 10 $BG\$7$?7k2L$r@_Dj$7$^$9!%(B @@ -253,9 +253,9 @@ SELECT abalance FROM accounts WHERE aid = :aid $B%6%/%7%g%s$NFbMF$r%U%!%$%k$K5-=R$7!$(B-f $B%*%W%7%g%s$K$h$C$F$=$N%U%!%$%k(B $B$r;XDj$7$F(B pgbench $B$r<B9T$7$^$9!%(B -\set nbranches :tps -\set ntellers 10 * :tps -\set naccounts 100000 * :tps +\set nbranches :scale +\set ntellers 10 * :scale +\set naccounts 100000 * :scale \setrandom aid 1 :naccounts \setrandom bid 1 :nbranches \setrandom tid 1 :ntellers @@ -285,6 +285,10 @@ pgbench $B$O@P0f(B $BC#IW$K$h$C$F=q$+$l$^$7$?!%%i%$%;%s%9>r7o$O(B pgbench.c $B"#2~DjMzNr(B +2006/09/13 + * $BJQ?t(Btps$B$OJ6$i$o$7$$$N$G(Bscale$B$KJQ99!%%G%U%)%k%H%7%J%j%*$N;~$K!$(B + $B%G%U%)%k%H$N%9%1!<%j%s%0%U%!%/%?$r(Bbranches$B$+$i<h$C$F$3$J$$%P%0$r=$@5!%(B + 2006/07/26 * $B:4F#$5$s$N%Q%C%A$rE,MQ!%0J2<$N5!G=DI2C!%(BPostgreSQL 8.2$B$K<h$j(B $B9~$^$l$^$9!%(B diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index 416f3c2e32..63c75878b4 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -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) -- 2.50.0