From: | John A Meinel <john(at)arbash-meinel(dot)com> |
---|---|
To: | Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Performance pb vs SQLServer. |
Date: | 2005-08-18 14:44:34 |
Message-ID: | 43049ED2.1080606@arbash-meinel.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Qingqing Zhou wrote:
> "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org> writes
>
>>Interesting; do they use an overwriting storage manager like Oracle, or
>>a non-overwriting one like Postgres?
>>
>
>
> They call this MVCC "RLV(row level versioning)". I think they use rollback
> segment like Oracle (a.k.a "version store" or tempdb in SQL Server). Some
> details are explained in their white paper:"Database concurrency and row
> level versioning in SQL Server 2005".
>
> Regards,
> Qingqing
>
I found the paper here:
http://www.microsoft.com/technet/prodtechnol/sql/2005/cncrrncy.mspx
And it does sound like they are doing it the Oracle way:
When a record in a table or index is updated, the new record is stamped
with the transaction sequence_number of the transaction that is doing
the update. The previous version of the record is stored in the version
store, and the new record contains a pointer to the old record in the
version store. Old records in the version store may contain pointers to
even older versions. All the old versions of a particular record are
chained in a linked list, and SQL Server may need to follow several
pointers in a list to reach the right version. Version records need to
be kept in the version store only as long as there are there are
operations that might require them.
John
=:->
From | Date | Subject | |
---|---|---|---|
Next Message | Sebastian Lallana | 2005-08-18 15:01:24 | FW: Tx forecast improving harware capabilities. |
Previous Message | Jeff Trout | 2005-08-18 13:00:31 | Re: extremly low memory usage |