Thread: Patch for testing query modes on pgbench

Patch for testing query modes on pgbench

From
ITAGAKI Takahiro
Date:
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

Re: Patch for testing query modes on pgbench

From
Tatsuo Ishii
Date:
> 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

Re: Patch for testing query modes on pgbench

From
ITAGAKI Takahiro
Date:
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

Re: Patch for testing query modes on pgbench

From
Tatsuo Ishii
Date:
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