Re: pg locking problem - Mailing list pgsql-hackers

From czl@iname.com (charles)
Subject Re: pg locking problem
Date
Msg-id 7e1335c.0111141414.1957a0fa@posting.google.com
Whole thread Raw
In response to Re: pg locking problem  (Tatsuo Ishii <t-ishii@sra.co.jp>)
Responses Re: pg locking problem
List pgsql-hackers
For various reasons, not wholly dependent on me, the test should show
good perf on Windows. Otherwise Sorry about that. Can't change the
platform for this one. I did scan the archives, without finding
anything similar - though maybe my search was not thorough enough.

I managed to isolate the bug further. 

1. Running with read-only transactions the bug does not occur. This
means that the bug is not directly related to the number of users (as
long as there's more than one).

2. Running with read-only transactions _and_ just _one_ type of a
read-write transaction the bug occurs. This means that the bug is not
caused by a deadlock - single transaction type always requests the
tables in the same order. (Am I right here? i'm sleepy so my thinking
is not up to scratch). Anyway, regardless which one of read-write tx
types is chosen, the problem occurs.

3. Overall this suggests that, in crude terms, the problem is
triggered when reading updated but uncommitted records. Possibly even
by one user reading updated uncommitted records of another (since this
happens with only two users)

4. The seizure problem manifests itself in high (100%) cpu
utilization. Also, about 80% of that cpu utilization is system state.
All pg processes (for all users) use about the same amount of cpu time
- that is the situation is not caused by one process/user getting out
of whack.


t-ishii@sra.co.jp (Tatsuo Ishii) wrote in message news:<20011114100112O.t-ishii@sra.co.jp>...
> > When running a test with multiple (>=2) users pg 'seizes up' after a
> > few transactions. Cpu goes 100% and disk goes to 0%. This lasts
> > 'forever' (overnight)On the same test all other tested databases don't
> > have this problem.
> > 
> > The error occurs with higher tx rate, when transactions bump into each
> > other more frequently. Some 'deadlock detected' messages appear around
> > the hang up time, but _not_ always.
> > 
> > Occasionally - but rarely - the seizure looks differently. CPU goes to
> > 0%, disk goes to 0% and, after about one minute, the processing is
> > resumed.
> > 
> > The current suspicion is that it is due to difference in lock and
> > deadlock handling between pg and most other dbs. In general I found
> > that I can't set transaction isolation level to READ_UNCOMMITTED (as
> > for other databases), the lowest level is READ_COMMITEED.
> > 
> > Any ideas how to reduce this problem? I really want to prove pg perf
> > with 20-100 users and have a problem running 2...
> 
> Have you ever tried the test on UNIX (or UNIX like systems)? I have
> never seen such a problem with PostgreSQL running on UNIX. Also I
> think PostgreSQL on Win is not ready for practical use...
> 
> > It wouldn't be fair (to other db's) to rewrite the test with some
> > pg-only LOCK command etc. I suspect I'm missing something simple, like
> > one of .conf parameters.
> > 
> > 
> > P.S. Using WinNT/Win2K system, pg 7.1.3 (current cygwin), jdbc driver
> > is jdbc7.1-1.3, cygipc is 1.10-1, java is 1.3.1_01a (current jdk).
> > Default pg installation, except for bumped up memory and 8 wal files.
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> > 
> > http://archives.postgresql.org
> > 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


pgsql-hackers by date:

Previous
From: Vince Vielhaber
Date:
Subject: Re: PostgreSQL 7.2b2 on Qube2
Next
From: Thomas Lockhart
Date:
Subject: Call for testing