Thread: Patch for testing query modes on pgbench
Here is a updated patch to add query modes into pgbench in order to measure performance of simple protocol, extended protocol and prepared statements with it. [PATCHES] Patch for testing query modes on pgbench http://momjian.us/mhonarc/patches/msg00335.html A new runtime option (-M) is added: -M querymode Choose the query mode from the follows. default is simple. - simple: using simple query protocol. - extended: using extended protocol. - prepared: using extended protocol with prepared statements. ---- Extended protocol is slower than simple protocol. I think it is a problem because we have to use the protocol (and cannot use prepared statements) in some situations, such as connectiong with JDBC to partitioned tables. $ pgbench -S -n -c5 -t10000 -M simple tps = 3567.351598 (excluding connections establishing) $ pgbench -S -n -c5 -t10000 -M extended tps = 2877.697842 (excluding connections establishing) $ pgbench -S -n -c5 -t10000 -M prepared tps = 4532.680627 (excluding connections establishing) Regards, --- ITAGAKI Takahiro NTT Open Source Software Center
Attachment
> Here is a updated patch to add query modes into pgbench in order to > measure performance of simple protocol, extended protocol and > prepared statements with it. > > [PATCHES] Patch for testing query modes on pgbench > http://momjian.us/mhonarc/patches/msg00335.html > > A new runtime option (-M) is added: > -M querymode > Choose the query mode from the follows. default is simple. > - simple: using simple query protocol. > - extended: using extended protocol. > - prepared: using extended protocol with prepared statements. > > ---- > Extended protocol is slower than simple protocol. I think it is a problem > because we have to use the protocol (and cannot use prepared statements) > in some situations, such as connectiong with JDBC to partitioned tables. > > $ pgbench -S -n -c5 -t10000 -M simple > tps = 3567.351598 (excluding connections establishing) > $ pgbench -S -n -c5 -t10000 -M extended > tps = 2877.697842 (excluding connections establishing) > $ pgbench -S -n -c5 -t10000 -M prepared > tps = 4532.680627 (excluding connections establishing) > > Regards, > --- > ITAGAKI Takahiro > NTT Open Source Software Center I got following: gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-labels -fno-strict-aliasing -I../../src/interfaces/libpq-I. -I../../src/include -D_GNU_SOURCE -c -o pgbench.o pgbench.c pgbench.c: In function `parseQuery': pgbench.c:1105: error: `var' undeclared (first use in this function) pgbench.c:1105: error: (Each undeclared identifier is reported only once pgbench.c:1105: error: for each function it appears in.) pgbench.c:1092: warning: unused variable `hvar' (note that the line number might be different what it should be in your work file since I have applied Yoshiyuki's patches in prior). The cause of this is obvious and easy to fix. However I wonder this is because of accidental old or wrong patches. Can you resubmit new patches against CVS Head? -- Tatsuo Ishii SRA OSS, Inc. Japan
Tatsuo Ishii <ishii@postgresql.org> wrote: > The cause of this is obvious and easy to fix. However I wonder this is > because of accidental old or wrong patches. Can you resubmit new patches > against CVS Head? Thanks for your review. Sorry, it's a wrong patch. I found another bugs in handling external scripts and ':' at cast operators '::'. I'll send new one. Regards, --- ITAGAKI Takahiro NTT Open Source Software Center
Attachment
Patches applied. Thanks. -- Tatsuo Ishii SRA OSS, Inc. Japan > Tatsuo Ishii <ishii@postgresql.org> wrote: > > > The cause of this is obvious and easy to fix. However I wonder this is > > because of accidental old or wrong patches. Can you resubmit new patches > > against CVS Head? > > Thanks for your review. Sorry, it's a wrong patch. > I found another bugs in handling external scripts and ':' > at cast operators '::'. I'll send new one. > > Regards, > --- > ITAGAKI Takahiro > NTT Open Source Software Center