From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Vivek Khera <khera(at)kcilink(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Buglist |
Date: | 2003-08-20 14:55:50 |
Message-ID: | 20030820145550.GA3805@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
On Wed, Aug 20, 2003 at 10:31:25AM -0400, Vivek Khera wrote:
> Seriously, how much slower can it be if the backend were to do the
> checking for external references upon updating/deleting a row? The
> cost would be distributed across time as opposed to concentrated at
> once within a vacuum process. I am fairly certian it would reduce
> disk bandwidth requirements since at least one necessary page will
> already be in memory.
There's no way to check for "external references", because said
references are actually the running transactions. So you can't drop a
row until all the transactions that were active during your transaction
are finished. Certainly your own backend can't do the checking, because
there's no way to even assert that it will be live when those other
transactions finish. Who will? The last of said transactions? It
certainly will be expensive for a backend to keep track of the
deleted/updated tuples by all _other_ backends, just in case...
Long running transactions can't be neglected, so you can't keep it in
memory.
INVHO the solution to this problem will come in the form of a
autovaccum daemon integrated into the backend...
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Ninguna manada de bestias tiene una voz tan horrible como la humana" (Orual)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruno Wolff III | 2003-08-20 14:56:27 | Re: Buglist |
Previous Message | alvherre | 2003-08-20 14:04:21 | Re: Thank you! |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruno Wolff III | 2003-08-20 14:56:27 | Re: Buglist |
Previous Message | Bruno Wolff III | 2003-08-20 13:20:59 | Re: Buglist |