Currently, if a reference to an invalid page is found during recovery,
is saved in hash table "invalid_page_tab". Then, if such a reference
its information is removed from the hash table. If there is unresolved
an invalid page in the hash table at the end of recovery, PANIC error occurs.
What I'm worried about is that the hash table is volatile. If a user restarts
the server before reaching end of recovery, any information in the
hash table is lost,
and we wrongly miss the PANIC error case because we cannot find any unresolved
reference. That is, even if database is corrupted at the end of recovery,
a user might not be able to notice that. This looks like a serious problem. No?
To prevent the above problem, we should write the contents of the hash table to
the disk for every restartpoints, I think. Then, when the server
it should reload the hash table from the disk. Thought? Am I missing something?
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
pgsql-hackers by date
|Next:||From: Kohei KaiGai||Date: 2011-09-26 09:58:56|
|Subject: Re: [v9.2] Fix Leaky View Problem|
|Previous:||From: Kohei KaiGai||Date: 2011-09-26 09:08:15|
|Subject: Re: contrib/sepgsql regression tests are a no-go|