On Nov 17, 2010, at 11:32 AM, Ivan Voras wrote:

> On 11/17/10 02:55, Josh Berkus wrote:
>> 
>>> If you do wish to have the data tossed out for no good reason every so
>>> often, then there ought to be a separate attribute to control that.  I'm
>>> really having trouble seeing how such behavior would be desirable enough
>>> to ever have the server do it for you, on its terms rather than yours.
>> 
>> I don't quite follow you.  The purpose of unlogged tables is for data
>> which is disposable in the event of downtime; the classic example is the
>> a user_session_status table.  In the event of a restart, all user
>> sessions are going to be invalid anyway.
> 
> Depends on what you mean by "session".
> 
> Typical web application session data, e.g. for PHP applications which are 
> deployed in *huge* numbers resides directly on file systems, and are not 
> guarded by anything (not even fsyncs). On operating system crash (and I do 
> mean when the whole machine and the OS go down), the most that can happen is 
> that some of those session files get garbled or missing - all the others work 
> perfectly fine when the server is brought back again and the users can 
> continue to work within their sessions. -- *That* is useful session behaviour 
> and it is also useful for logs.
> 
> The definition of unlogged tables which are deliberately being emptied for no 
> good reason does not seem very useful to me. I'd rather support a (optional) 
> mode (if it can be implemented) in which PostgreSQL scans through these 
> unlogged tables on startup and discards any pages whose checkums don't match, 
> but accepts all others as "good enough". Even better: maybe not all pages 
> need to be scanned, only the last few, if there is a chance for any kind of 
> mechanism which can act as checkpoints for data validity.

This is not really a fair feature comparison. With the file-based sessions, the 
webserver will continue to deal with potentially corrupted sessions, which is 
worse than dealing with no sessions. This new PostgreSQL feature will ensure 
that such a thing a cannot happen while also offering the performance of the 
file-based session storage and the ability to use queries against the session 
data. In my backups (using whatever flag or dump default), I will be ensuring 
that the sessions are *not* in the backup. I also plan on using this feature 
for materialized views to replace memcached.

Considering that I have been waiting on this feature for years, I, for one, 
welcome our unlogged table overlords.

Cheers,
M
-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to