Обсуждение: Fwd: Suspected Postgres Datacorruption

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

Fwd: Suspected Postgres Datacorruption

От
Sumeet Jauhar
Дата:



Hi All ,


Can you please help me out with the following questions .

 

Our application is running on Postgres 7.4.X . I agree that this is a very old version of Postgres and we should have upgraded . The issue that we faced is that

 

1 . There was a system crash due to a hardware failure .

 

2 . When the system came up , we tried to insert a few records into the database . However at this point in time we saw that Postgres was taking a lot of CPU & memory .

 

Around 42% CPU consumption . This was a cause of concern .

 

3 . We re-indexed the database and it helped reduce the cpu & memory consumption .

 

My question is

 

A ) Isn’t Postgres database resilient enough to handle hardware system failure ? or it sometime results in a corrupt index for its tables ? I read on the Postgres site that hardware failure can cause corrupt indexes . Besides this are there any other scenario which may result in such corruption .

B) If there has been improvement / enhancements done by Postgres regarding the way it handles corrupt indexes can you please pass me more information  about the bug Id or some documentation on it ? Our application does not do any REINDEXING . I am in a dilemma if we should seriously incorporate it in our application .

 

I ideally want to push to a higher version of Postgres . If I can prove that there will be significant performance benefits and that crashes won’t occur then I will be able to present a strong case .


Since my question is related to Performance & Data corruption i saw on the Postgres site that i should provide the following information


Addition Info :


CPU manufacturer and model : Intel's Itanium Processor 

Do you use a RAID controller? yes


PCIe SAS SmartArray P410i RAID Controller

PCIe SAS SmartArray P411 RAID Controller


Is is Write back caching enabled ?

    Total Cache Size (MB)............... 144
    Read Cache........................ N/A

    Write Cache....................... N/A

No of disks : 4


Have you ever set fsync=off in the postgresql config file?

#fsync = true                   # turns forced synchronization on or off

I never changed it .


Have you had any unexpected power loss lately? Replaced a failed RAID disk? Had an operating system crash?  Yes system crashed had occured .


Hope this information helps .


Regards,

Sumeet



Re: Fwd: Suspected Postgres Datacorruption

От
Craig Ringer
Дата:
On 4/08/2011 1:14 AM, Sumeet Jauhar wrote:

> 1 . There was a system crash due to a hardware failure .

> A ) Isn’t Postgres database resilient enough to handle hardware system
> failure ? or it sometime results in a corrupt index for its tables ? I

You should *always* be able to pull the plug out of a box running Pg at
any point and have it come up just fine. If you can't, it's a bug. They
do turn up, but quite rarely and usually relating to odd corner cases in
newly introduced features.

If you've done something like turn off fsync, of course, you've just
told PostgreSQL "I don't care about my data, don't bother keeping it
crash safe" and you get garbage if there's a system crash. But that's
your choice to enable if your use case doesn't require data durability.
You haven't done that, so this isn't the cause of your issue.

The only other known case (in a current version) where index corruption
is expected after a crash is if you are using hash indexes. Hash indexes
are NOT CRASH SAFE, as per the documentation, and WILL need to be
reindexed after a crash. Don't use them unless you really know you need
them (you don't).

Of course, if you're using 7.4.2 or something ancient, you're missing a
lot of bug fixes, and some of them DID relate to data durability issues.

--
Craig Ringer