From: | "Merlin Moncure" <mmoncure(at)gmail(dot)com> |
---|---|
To: | "Chris Mair" <chrisnospam(at)1006(dot)org> |
Cc: | alexei(dot)vladishev(at)gmail(dot)com, pgsql-general(at)postgresql(dot)org |
Subject: | Re: more anti-postgresql FUD |
Date: | 2006-10-14 22:20:45 |
Message-ID: | b42b73150610141520v45798928ydf865980b2f7e74a@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
On 10/14/06, Chris Mair <chrisnospam(at)1006(dot)org> wrote:
> Ok,
> I did some tests at last on this using the above 3 suggestions.
> I ran on 8.1.4 on Linux with fsync=off and did 300k updates bundled
> into 100 updates / 1 transaction (100 turned out to be a sweeter
> spot than 1000).
My postgresql 'magic number' is 150. 150 is the point at which I stop
getting meangingful improvements on two important cases: simple
update/insert transactions like yours and also where the performance
improvement on fetching multiple rows level's off. In other words,
selecting 100k rows in 150 record chunks is marginally slower then
selecting the whole thing at once (and single record selects is of
course much slower). In code, the number 150 is called 'merlin's
constant' :)
however, its a pretty safe bet zabbix is not doing updates grouped in
transactions like that. on the other hand, the updates are not so
localized either.
> Details and results are here:
> http://www.1006.org/misc/20061014_pgupdates_bench/
wow, great chart!
8500 updates/sec is really spectacular. It proves that mvcc bloat on
small tables is controllable. On large tables, the bloat is usually
not as much of a concern and can actually be a good thing. You also
proved, in my opinion conclusively, that running vacuum in high update
environments is a good thing.
> With vacuum, I get a stable performance all the way up to
> 300k updates. Rates are 4700 u/s or even 8500 u/s.
It looks like with careful tuning 10k could be cracked. Also, while
mvcc provides certain scnenarios that have to be worked around, you
also get its advantages. Updates lock only the record being written
to and only to other writers. mysql ISAM does full table
locking...which is going to perform better in a 2p server with 100
users? 4p and 1000 users?
merlin
From | Date | Subject | |
---|---|---|---|
Next Message | Reece Hart | 2006-10-14 23:04:35 | Re: Postgresql 6.13 |
Previous Message | Ron Johnson | 2006-10-14 20:21:27 | Re: BEGIN WORK READ ONLY; |
From | Date | Subject | |
---|---|---|---|
Next Message | Raja Agrawal | 2006-10-14 22:46:07 | Asynchronous I/O Support |
Previous Message | Tom Lane | 2006-10-14 18:55:03 | Re: [PATCHES] New shared memory hooks proposal (was Re: pre_load_libraries) |