Re: understanding postgres issues/bottlenecks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At 10:36 AM 1/10/2009, Gregory Stark wrote:
"Scott Marlowe" <scott.marlowe@xxxxxxxxx> writes:

> On Sat, Jan 10, 2009 at 5:40 AM, Ron <rjpeace@xxxxxxxxxxxxx> wrote:
>> At 03:28 PM 1/8/2009, Merlin Moncure wrote:
>>> just be aware of the danger .  hard reset (power off) class of failure
>>> when fsync = off means you are loading from backups.
>>
>> That's what redundant power conditioning UPS's are supposed to help prevent
>> ;-)
>
> But of course, they can't prevent them, but only reduce the likelihood
> of their occurrance.  Everyone who's working in large hosting
> environments has at least one horror story to tell about a power
> outage that never should have happened.

Or a system crash. If the kernel panics for any reason when it has dirty
buffers in memory the database will need to be restored.
A power conditioning UPS should prevent a building wide or circuit level bad power event, caused by either dirty power or a power loss, from affecting the host. Within the design limits of the UPS in question of course.

So the real worry with fsync = off in a environment with redundant decent UPS's is pretty much limited to host level HW failures, SW crashes, and unlikely catastrophes like building collapses, lightning strikes, floods, etc. Not that your fsync setting is going to matter much in the event of catastrophes in the physical environment...

Like anything else, there is usually more than one way to reduce risk while at the same time meeting (realistic) performance goals. If you need the performance implied by fsync off, then you have to take other steps to reduce the risk of data corruption down to about the same statistical level as running with fsync on. Or you have to decide that you are willing to life with the increased risk (NOT my recommendation for most DB hosting scenarios.)


>> ...and of course, those lucky few with bigger budgets can use SSD's and not
>> care what fsync is set to.
>
> Would that prevent any corruption if the writes got out of order
> because of lack of fsync?  Or partial writes?  Or wouldn't fsync still
> need to be turned on to keep the data safe.

I think the idea is that with SSDs or a RAID with a battery backed cache you
can leave fsync on and not have any significant performance hit since the seek
times are very fast for SSD. They have limited bandwidth but bandwidth to the
WAL is rarely an issue -- just latency.
Yes, Greg understands what I meant here. In the case of SSDs, the performance hit of fsync = on is essentially zero. In the case of battery backed RAM caches for RAID arrays, the efficacy is dependent on how the size of the cache compares with the working set of the disk access pattern.

Ron

--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux