Thread: Re :MySQL Benchmark page - Problem with vacuum() in PostgreSQL

Re :MySQL Benchmark page - Problem with vacuum() in PostgreSQL

From
Mark kirkwood
Date:
Dear all,

Please humour me if this is a silly comment , or has been made before  -
but....

when Monty posted the original message I had a few thoughts  - ........

I understand that there is a issue with

loop many times
  perform a set a updates/inserts
  run vauuum
end loop

I would not peform a test this way.... let Postgresql MVCC sort out the
relevant rows to manage... so run vacuum once only....after all on a real
system you try to minimize the number of times vacuum ( or its related
equivalents in other dbms's - e.g : analyze ) are run ( as they are typically
expensive ).

So I guess I am saying that if the Benchmark requires multiple runs of vacuum
/ analyze type functions then maybe the design of the benchmark should be
examined a bit...


regards

Mark

Re: Re :MySQL Benchmark page - Problem with vacuum() in PostgreSQL

From
Mark kirkwood
Date:
Sounds eminently reasonable.... my misunderstanding sorry :-(

regards,
Mark

On Saturday 18 August 2001 00:15, Michael Widenius wrote:
> Hi!
>
> The idea is to run the same benchmarks two different ways:
>
> Normal:  Run without any vacuum commands
> Fast:    Run vacuum after each massive update/insert batch
>
> The reason for the 'fast' option is to get more accurate times for
> system that is mostly 'read' oriented.
>
> The test is more done like this:
>
> - Do a lot of inserts
> - vacuum
> - Do a lot of updates/deletes
> - vacuum
> - Do a lot of selects
> - drop tables
>
> Vacuum is never performed in a loop.
>
> In our tests we have noticed that we get a total speedup of 9 times
> when doing vacuum this way.
>
> Regards,
> Monty
>
> PS: The patch / new file we got from Tom Lane to fix the problem with
>     vacuum didn't help.  I will do a complete bug report about this
>     later today.

Re :MySQL Benchmark page - Problem with vacuum() in PostgreSQL

From
Michael Widenius
Date:
Hi!

>>>>> "Mark" == Mark kirkwood <markir@slingshot.co.nz> writes:

Mark> Dear all,
Mark> Please humour me if this is a silly comment , or has been made before  -
Mark> but....

Mark> when Monty posted the original message I had a few thoughts  - ........

Mark> I understand that there is a issue with

Mark> loop many times
Mark>   perform a set a updates/inserts
Mark>   run vauuum
Mark> end loop

Mark> I would not peform a test this way.... let Postgresql MVCC sort out the
Mark> relevant rows to manage... so run vacuum once only....after all on a real
Mark> system you try to minimize the number of times vacuum ( or its related
Mark> equivalents in other dbms's - e.g : analyze ) are run ( as they are typically
Mark> expensive ).

Mark> So I guess I am saying that if the Benchmark requires multiple runs of vacuum
Mark> / analyze type functions then maybe the design of the benchmark should be
Mark> examined a bit...

The idea is to run the same benchmarks two different ways:

Normal:  Run without any vacuum commands
Fast:    Run vacuum after each massive update/insert batch

The reason for the 'fast' option is to get more accurate times for
system that is mostly 'read' oriented.

The test is more done like this:

- Do a lot of inserts
- vacuum
- Do a lot of updates/deletes
- vacuum
- Do a lot of selects
- drop tables

Vacuum is never performed in a loop.

In our tests we have noticed that we get a total speedup of 9 times
when doing vacuum this way.

Regards,
Monty

PS: The patch / new file we got from Tom Lane to fix the problem with
    vacuum didn't help.  I will do a complete bug report about this
    later today.