mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +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:
		@@ -184,7 +184,7 @@ o -f option
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  example:
 | 
					  example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  \set ntellers 10 * :tps
 | 
					  \set ntellers 10 * :scale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  \setrandom name min max
 | 
					  \setrandom name min max
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -206,9 +206,9 @@ o -f option
 | 
				
			|||||||
  Example, TPC-B like benchmark can be defined as follows(scaling
 | 
					  Example, TPC-B like benchmark can be defined as follows(scaling
 | 
				
			||||||
  factor = 1):
 | 
					  factor = 1):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\set nbranches :tps
 | 
					\set nbranches :scale
 | 
				
			||||||
\set ntellers 10 * :tps
 | 
					\set ntellers 10 * :scale
 | 
				
			||||||
\set naccounts 100000 * :tps
 | 
					\set naccounts 100000 * :scale
 | 
				
			||||||
\setrandom aid 1 :naccounts
 | 
					\setrandom aid 1 :naccounts
 | 
				
			||||||
\setrandom bid 1 :nbranches
 | 
					\setrandom bid 1 :nbranches
 | 
				
			||||||
\setrandom tid 1 :ntellers
 | 
					\setrandom tid 1 :ntellers
 | 
				
			||||||
@@ -235,6 +235,12 @@ Basically it is same as BSD license. See pgbench.c for more details.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
o History
 | 
					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
 | 
					2006/07/26
 | 
				
			||||||
	* New features contributed by Tomoaki Sato.
 | 
						* New features contributed by Tomoaki Sato.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
							$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
 | 
							$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
 | 
							-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
 | 
					-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
 | 
						$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
 | 
						$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$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
 | 
						$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%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
 | 
					$B$r;XDj$7$F(B pgbench $B$r<B9T$7$^$9!%(B
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\set nbranches :tps
 | 
					\set nbranches :scale
 | 
				
			||||||
\set ntellers 10 * :tps
 | 
					\set ntellers 10 * :scale
 | 
				
			||||||
\set naccounts 100000 * :tps
 | 
					\set naccounts 100000 * :scale
 | 
				
			||||||
\setrandom aid 1 :naccounts
 | 
					\setrandom aid 1 :naccounts
 | 
				
			||||||
\setrandom bid 1 :nbranches
 | 
					\setrandom bid 1 :nbranches
 | 
				
			||||||
\setrandom tid 1 :ntellers
 | 
					\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
 | 
					$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
 | 
					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
 | 
						* $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
 | 
						$B9~$^$l$^$9!%(B
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
					 * pgbench: a simple benchmark program for PostgreSQL
 | 
				
			||||||
 * written by Tatsuo Ishii
 | 
					 * 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 */
 | 
					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.
 | 
					 * accounts table.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int			tps = 1;
 | 
					int			scale = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * end of configurable parameters
 | 
					 * end of configurable parameters
 | 
				
			||||||
@@ -134,9 +134,9 @@ int			num_files;			/* its number */
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* default scenario */
 | 
					/* default scenario */
 | 
				
			||||||
static char *tpc_b = {
 | 
					static char *tpc_b = {
 | 
				
			||||||
	"\\set nbranches :tps\n"
 | 
						"\\set nbranches :scale\n"
 | 
				
			||||||
	"\\set ntellers 10 * :tps\n"
 | 
						"\\set ntellers 10 * :scale\n"
 | 
				
			||||||
    "\\set naccounts 100000 * :tps\n"
 | 
					    "\\set naccounts 100000 * :scale\n"
 | 
				
			||||||
	"\\setrandom aid 1 :naccounts\n"
 | 
						"\\setrandom aid 1 :naccounts\n"
 | 
				
			||||||
	"\\setrandom bid 1 :nbranches\n"
 | 
						"\\setrandom bid 1 :nbranches\n"
 | 
				
			||||||
	"\\setrandom tid 1 :ntellers\n"
 | 
						"\\setrandom tid 1 :ntellers\n"
 | 
				
			||||||
@@ -152,9 +152,9 @@ static char *tpc_b = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* -N case */
 | 
					/* -N case */
 | 
				
			||||||
static char *simple_update = {
 | 
					static char *simple_update = {
 | 
				
			||||||
	"\\set nbranches :tps\n"
 | 
						"\\set nbranches :scale\n"
 | 
				
			||||||
	"\\set ntellers 10 * :tps\n"
 | 
						"\\set ntellers 10 * :scale\n"
 | 
				
			||||||
    "\\set naccounts 100000 * :tps\n"
 | 
					    "\\set naccounts 100000 * :scale\n"
 | 
				
			||||||
	"\\setrandom aid 1 :naccounts\n"
 | 
						"\\setrandom aid 1 :naccounts\n"
 | 
				
			||||||
	"\\setrandom bid 1 :nbranches\n"
 | 
						"\\setrandom bid 1 :nbranches\n"
 | 
				
			||||||
	"\\setrandom tid 1 :ntellers\n"
 | 
						"\\setrandom tid 1 :ntellers\n"
 | 
				
			||||||
@@ -168,7 +168,7 @@ static char *simple_update = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* -S case */
 | 
					/* -S case */
 | 
				
			||||||
static char *select_only = {
 | 
					static char *select_only = {
 | 
				
			||||||
    "\\set naccounts 100000 * :tps\n"
 | 
					    "\\set naccounts 100000 * :scale\n"
 | 
				
			||||||
	"\\setrandom aid 1 :naccounts\n"
 | 
						"\\setrandom aid 1 :naccounts\n"
 | 
				
			||||||
	"SELECT abalance FROM accounts WHERE aid = :aid;\n"
 | 
						"SELECT abalance FROM accounts WHERE aid = :aid;\n"
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -338,10 +338,13 @@ putVariable(CState * st, char *name, char *value)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if ((value = strdup(value)) == NULL)
 | 
							char *val;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if ((val = strdup(value)) == NULL)
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		free(var->value);
 | 
							free(var->value);
 | 
				
			||||||
		var->value = value;
 | 
							var->value = val;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
@@ -755,7 +758,7 @@ init(void)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	PQclear(res);
 | 
						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);
 | 
							snprintf(sql, 256, "insert into branches(bid,bbalance) values(%d,0)", i + 1);
 | 
				
			||||||
		res = PQexec(con, sql);
 | 
							res = PQexec(con, sql);
 | 
				
			||||||
@@ -767,7 +770,7 @@ init(void)
 | 
				
			|||||||
		PQclear(res);
 | 
							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)"
 | 
							snprintf(sql, 256, "insert into tellers(tid,bid,tbalance) values (%d,%d,0)"
 | 
				
			||||||
				 ,i + 1, i / ntellers + 1);
 | 
									 ,i + 1, i / ntellers + 1);
 | 
				
			||||||
@@ -792,7 +795,7 @@ init(void)
 | 
				
			|||||||
	 * occupy accounts table with some data
 | 
						 * occupy accounts table with some data
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	fprintf(stderr, "creating tables...\n");
 | 
						fprintf(stderr, "creating tables...\n");
 | 
				
			||||||
	for (i = 0; i < naccounts * tps; i++)
 | 
						for (i = 0; i < naccounts * scale; i++)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		int			j = i + 1;
 | 
							int			j = i + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1133,7 +1136,7 @@ printResults(
 | 
				
			|||||||
		s = "Custom query";
 | 
							s = "Custom query";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	printf("transaction type: %s\n", s);
 | 
						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 clients: %d\n", nclients);
 | 
				
			||||||
	printf("number of transactions per client: %d\n", nxacts);
 | 
						printf("number of transactions per client: %d\n", nxacts);
 | 
				
			||||||
	printf("number of transactions actually processed: %d/%d\n", normal_xacts, nxacts * nclients);
 | 
						printf("number of transactions actually processed: %d/%d\n", normal_xacts, nxacts * nclients);
 | 
				
			||||||
@@ -1175,6 +1178,8 @@ main(int argc, char **argv)
 | 
				
			|||||||
	PGresult   *res;
 | 
						PGresult   *res;
 | 
				
			||||||
	char	   *env;
 | 
						char	   *env;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						char		val[64];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((env = getenv("PGHOST")) != NULL && *env != '\0')
 | 
						if ((env = getenv("PGHOST")) != NULL && *env != '\0')
 | 
				
			||||||
		pghost = env;
 | 
							pghost = env;
 | 
				
			||||||
	if ((env = getenv("PGPORT")) != NULL && *env != '\0')
 | 
						if ((env = getenv("PGPORT")) != NULL && *env != '\0')
 | 
				
			||||||
@@ -1248,10 +1253,10 @@ main(int argc, char **argv)
 | 
				
			|||||||
				is_connect = 1;
 | 
									is_connect = 1;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			case 's':
 | 
								case 's':
 | 
				
			||||||
				tps = atoi(optarg);
 | 
									scale = atoi(optarg);
 | 
				
			||||||
				if (tps <= 0)
 | 
									if (scale <= 0)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					fprintf(stderr, "invalid scaling factor: %d\n", tps);
 | 
										fprintf(stderr, "invalid scaling factor: %d\n", scale);
 | 
				
			||||||
					exit(1);
 | 
										exit(1);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
@@ -1323,12 +1328,10 @@ main(int argc, char **argv)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	remains = nclients;
 | 
						remains = nclients;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (getVariable(&state[0], "tps") == NULL)
 | 
						if (getVariable(&state[0], "scale") == NULL)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		char		val[64];
 | 
							snprintf(val, sizeof(val), "%d", scale);
 | 
				
			||||||
 | 
							if (putVariable(&state[0], "scale", val) == false)
 | 
				
			||||||
		snprintf(val, sizeof(val), "%d", tps);
 | 
					 | 
				
			||||||
		if (putVariable(&state[0], "tps", val) == false)
 | 
					 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			fprintf(stderr, "Couldn't allocate memory for variable\n");
 | 
								fprintf(stderr, "Couldn't allocate memory for variable\n");
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
@@ -1405,13 +1408,20 @@ main(int argc, char **argv)
 | 
				
			|||||||
			fprintf(stderr, "%s", PQerrorMessage(con));
 | 
								fprintf(stderr, "%s", PQerrorMessage(con));
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		tps = atoi(PQgetvalue(res, 0, 0));
 | 
							scale = atoi(PQgetvalue(res, 0, 0));
 | 
				
			||||||
		if (tps < 0)
 | 
							if (scale < 0)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			fprintf(stderr, "count(*) from branches invalid (%d)\n", tps);
 | 
								fprintf(stderr, "count(*) from branches invalid (%d)\n", scale);
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		PQclear(res);
 | 
							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)
 | 
						if (!is_no_vacuum)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user