pgsql: Add text: * Merge xmin/xmax/cmin/cmax back into three header

From: momjian(at)svr1(dot)postgresql(dot)org (Bruce Momjian)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add text: * Merge xmin/xmax/cmin/cmax back into three header
Date: 2005-09-02 15:22:44
Message-ID: 20050902152244.04CF8D894E@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Add text:

* Merge xmin/xmax/cmin/cmax back into three header fields

Before subtransactions, there used to be only three fields needed to
store these four values. This was possible because only the current
transaction looks at the cmin/cmax values. If the current transaction
created and expired the row the fields stored where xmin (same as
xmax), cmin, cmax, and if the transaction was expiring a row from a
another transaction, the fields stored were xmin (cmin was not
needed), xmax, and cmax. Such a system worked because a transaction
could only see committed rows from another transaction. However,
subtransactions can see rows from outer transactions, and once the
subtransaction completes, the outer transaction continues, requiring
the storage of all four fields. With subtransactions, an outer
transaction can create a row, a subtransaction expire it, and when the
subtransaction completes, the outer transaction still has to have
proper visibility of the row, for example, for cursors.

One possible solution is to create a phantom cid which represents a
cmin/cmax pair and is stored in local memory.

Modified Files:
--------------
pgsql/doc:
TODO (r1.1646 -> r1.1647)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/TODO.diff?r1=1.1646&r2=1.1647)
pgsql/doc/src/FAQ:
TODO.html (r1.153 -> r1.154)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/FAQ/TODO.html.diff?r1=1.153&r2=1.154)

Browse pgsql-committers by date

  From Date Subject
Next Message User Dpage 2005-09-02 16:09:05 pginstaller - pginst: Update all bundled packages, cleanup contrib
Previous Message User T-ishii 2005-09-02 14:32:34 pgpool - pgpool: Version 2.6.3