Обсуждение: Re: ERROR: could not read block

Поиск
Список
Период
Сортировка

Re: ERROR: could not read block

От
"Kevin Grittner"
Дата:
I got the error log working on Windows (with redirect_stderr).  I had
to stop and restart postgres to do so.  I ran the query (for the fourth
time), and it completed successfully.

I'm not inclined to believe that changing the redirect_stderr setting
would change this behavior, so I guess that either it is a
coincidence or the restart cleared some bad state within postgres.

Is there anything that anyone wants me to do at this point, to try
to pin down a cause, or do I drop it here?

-Kevin



Re: ERROR: could not read block

От
Kevin Keith
Дата:
If I have followed the chain correctly, I saw that you were trying to
run an update statement on a large number of records in a large table
right? I have changed my strategy in the past for this type of problem.
I don't know if it would have fixed this problem or not, but I have seen
with Postgres and Oracle that updates like this on a large table may
take very long and cause contention processes.

Anyway, the method I normally use is to write a script that selects the
records into a cursor and updates one at a time by the primary key, and
then committing the transaction every so often (i.e. 500 - 1000
records). This way there will not be the overhead associated with an
extremely large transaction, and the script will complete much faster (I
have seen hours vs. minutes).

Hope this helps.

Kevin

Kevin Grittner wrote:

>I got the error log working on Windows (with redirect_stderr).  I had
>to stop and restart postgres to do so.  I ran the query (for the fourth
>time), and it completed successfully.
>
>I'm not inclined to believe that changing the redirect_stderr setting
>would change this behavior, so I guess that either it is a
>coincidence or the restart cleared some bad state within postgres.
>
>Is there anything that anyone wants me to do at this point, to try
>to pin down a cause, or do I drop it here?
>
>-Kevin
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: Don't 'kill -9' the postmaster
>
>


Re: ERROR: could not read block

От
Qingqing Zhou
Дата:

On Tue, 15 Nov 2005, Kevin Grittner wrote:

> I got the error log working on Windows (with redirect_stderr).  I had
> to stop and restart postgres to do so.  I ran the query (for the fourth
> time), and it completed successfully.

Strange - the phyiscal read for the 2nd, 3rd, 4th time should be the
same, if we intent to think of the IO presure.

>
> Is there anything that anyone wants me to do at this point, to try
> to pin down a cause, or do I drop it here?
>

Since you can reproduce the error with big chance, I think it is a good
chance to pin down a cause now. It would be useful to know the
GetLastError() instead of a tranlated errno. Can you patch the code like
this (patch smgrread()):

http://archives.postgresql.org/pgsql-bugs/2005-10/msg00050.php


Regards,
Qingqing