Subject | Re: [firebird-support] Re: firebird on virtual server |
---|---|
Author | Ann W. Harrison |
Post date | 2010-10-19T16:45:31Z |
On 10/19/2010 11:42 AM, Doug Chamberlin wrote:
release. You have to enable snapshots with an ALTER DATABASE
statement that sets either READ_COMMITTED_SNAPSHOTS ON, or
ALLOW_SNAPSHOT_ISOLATION ON, and specify that you want SNAPSHOT
transaction isolation. They continue to use two-phase locking
to identify write/write conflicts, but do not that read locks
for SNAPSHOT transactions. Like Oracle, they use the recovery
log to hold back versions of records rather than keeping them
in the database. Which means, of course, that recovery from
a rolled back transaction involves the recovery log. It also
means that truncating the recovery log can invalidate a
long-running snapshot transaction.
As far as I know, Postgres rolls back transactions by invalidating
the most recent record in the version chain and reverting to an
old version, rather than maintaining recovery log.
Cheers,
Ann
> On 10/19/2010 6:30 AM, Kjell Rilbe wrote:Oh right. SQLServer has had "Snapshot" modes since their 2005
>> PostgreSQL or SQL Server, which are both MGA aren't they?
>
> Not that I'm aware of. Their heritage is certainly not MGA. They may
> have recently grafted on some MGA stuff but I wouldn't trust they got it
> right without serious investigation.
>
release. You have to enable snapshots with an ALTER DATABASE
statement that sets either READ_COMMITTED_SNAPSHOTS ON, or
ALLOW_SNAPSHOT_ISOLATION ON, and specify that you want SNAPSHOT
transaction isolation. They continue to use two-phase locking
to identify write/write conflicts, but do not that read locks
for SNAPSHOT transactions. Like Oracle, they use the recovery
log to hold back versions of records rather than keeping them
in the database. Which means, of course, that recovery from
a rolled back transaction involves the recovery log. It also
means that truncating the recovery log can invalidate a
long-running snapshot transaction.
As far as I know, Postgres rolls back transactions by invalidating
the most recent record in the version chain and reverting to an
old version, rather than maintaining recovery log.
Cheers,
Ann