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
Attachments:
pgbench_querymode.patchapplication/octet-stream; name=pgbench_querymode.patchDownload+298-167
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.htmlA 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
Attachments:
pgbench_querymode-3.patchapplication/octet-stream; name=pgbench_querymode-3.patchDownload+300-168
Patches applied. Thanks.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
Show quoted text
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