From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp> |
Cc: | pgsql-hackers(at)postgresql(dot)org, Katsuhiko Okano <okano(dot)katsuhiko(at)oss(dot)ntt(dot)co(dot)jp> |
Subject: | Re: CSStorm occurred again by postgreSQL8.2 |
Date: | 2006-08-07 13:09:37 |
Message-ID: | 19738.1154956177@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp> writes:
> The invokers of SubTrans module are two SubTransGetTopmostTransaction()
> in HeapTupleSatisfiesSnapshot(). When I disabled the calls, CSStorm did
> not occur. SubTransGetTopmostTransaction returns the argument without
> change when we don't use SAVEPOINTs.
> If we optimize for non-subtransactions, we can avoid to lock SubTrans
> for check visiblities of tuples inserted by top transactions.
Only for top transactions still in progress, so I doubt that would
help much.
I'm wondering about doing something similar to what
TransactionIdIsInProgress does, ie, make use of the PGPROC lists
of live subtransactions. Suppose that GetSnapshotData copies not
only top xids but live subxids into the snapshot, and adds a flag
indicating whether the subxids are complete (ie, none of the subxid
lists have overflowed). Then if the flag is set, tqual.c doesn't
need to do SubTransGetTopmostTransaction() before searching the
list.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2006-08-07 13:29:23 | Re: proposal for 8.3: Simultaneous assignment for PL/pgSQL |
Previous Message | andrew | 2006-08-07 12:37:18 | Re: proposal for 8.3: Simultaneous assignment for |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-08-07 13:48:14 | Simplifying "standby mode" |
Previous Message | Hiroshi Saito | 2006-08-07 07:52:21 | Re: Fixed definition of complicated errcode of ms_vc8 |