On Fri, Jul 17, 2015 at 6:50 AM, Fabien <coe...@cri.ensmp.fr> wrote: > > This patch adds per-script statistics & other improvements to pgbench > > Rationale: Josh asked for the per-script stats:-) > > Some restructuring is done so that all stats (-l --aggregate-interval > --progress --per-script-stats, latency & lag...) share the same structures > and functions to accumulate data. This limits a lot the growth of pgbench > from this patch (+17 lines). > > In passing, remove the distinction between internal and external scripts. > Pgbench just execute scripts, some of them may be internal... > > As a side effect, all scripts can be accumulated "pgbench -B -N -S -f ..." > would execute 4 scripts, 3 of which internal (tpc-b, simple-update, > select-only and another externally supplied one). > > Also add a weight option to change the probability of choosing some scripts > when several are available.
I was eager to use this to do some performance testing on a series of workloads gradually transitioning from write-heavy to read-only. So I wanted to do something like: for f in `seq 0 5 100`; do pgbench -T 180 -c8 -j8 -b tpcb-like@$f -b select-only@100 done; But, I'm not allowed to specify a weight of zero. That means I have to special-case the first iteration of the "for" loop where $f is zero. I think it would be more convenient if I was allowed to specify a zero weight, and the script would just ignore that script. All I had to do to make this work is remove the check that prevents from setting the weight to zero. But then I would need to add in a check that the sum of all weights is not zero, which I have done here. We could get more complex by not adding a zero-weight script into the array of scripts at all, rather than adding it in a way where it can never be selected. But then that would complicate the parsing of the per-script stats report, when one of the scripts was no longer reported. I like this way better. Would this be a welcome change? Cheers, Jeff
pgbench_zero_weight.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers