Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 19d561c

Browse files
committed
Done!
< * 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 rows from another completed 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's cmin, 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. Another idea is to < store both cmin and cmax only in local memory. < > * -Merge xmin/xmax/cmin/cmax back into three header fields
1 parent c398300 commit 19d561c

File tree

2 files changed

+4
-43
lines changed

2 files changed

+4
-43
lines changed

doc/TODO

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
PostgreSQL TODO List
33
====================
44
Current maintainer: Bruce Momjian (bruce@momjian.us)
5-
Last updated: Thu Feb 8 20:29:43 EST 2007
5+
Last updated: Thu Feb 8 22:37:41 EST 2007
66

77
The most recent version of this document can be viewed at
88
http://www.postgresql.org/docs/faqs.TODO.html.
@@ -1329,27 +1329,7 @@ Miscellaneous Performance
13291329
could hit disk before WAL is written.
13301330

13311331
* Add a script to ask system configuration questions and tune postgresql.conf
1332-
* Merge xmin/xmax/cmin/cmax back into three header fields
1333-
1334-
Before subtransactions, there used to be only three fields needed to
1335-
store these four values. This was possible because only the current
1336-
transaction looks at the cmin/cmax values. If the current transaction
1337-
created and expired the row the fields stored where xmin (same as
1338-
xmax), cmin, cmax, and if the transaction was expiring a row from a
1339-
another transaction, the fields stored were xmin (cmin was not
1340-
needed), xmax, and cmax. Such a system worked because a transaction
1341-
could only see rows from another completed transaction. However,
1342-
subtransactions can see rows from outer transactions, and once the
1343-
subtransaction completes, the outer transaction continues, requiring
1344-
the storage of all four fields. With subtransactions, an outer
1345-
transaction can create a row, a subtransaction expire it, and when the
1346-
subtransaction completes, the outer transaction still has to have
1347-
proper visibility of the row's cmin, for example, for cursors.
1348-
1349-
One possible solution is to create a phantom cid which represents a
1350-
cmin/cmax pair and is stored in local memory. Another idea is to
1351-
store both cmin and cmax only in local memory.
1352-
1332+
* -Merge xmin/xmax/cmin/cmax back into three header fields
13531333
* Consider ways of storing rows more compactly on disk
13541334

13551335
o Support a smaller header for short variable-length fields?

doc/src/FAQ/TODO.html

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
99
<h1><a name="section_1">PostgreSQL TODO List</a></h1>
1010
<p>Current maintainer: Bruce Momjian (<a href="mailto:bruce@momjian.us">bruce@momjian.us</a>)<br/>
11-
Last updated: Thu Feb 8 20:29:43 EST 2007
11+
Last updated: Thu Feb 8 22:37:41 EST 2007
1212
</p>
1313
<p>The most recent version of this document can be viewed at<br/>
1414
<a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>.
@@ -1189,26 +1189,7 @@ <h1><a name="section_20">Miscellaneous Performance</a></h1>
11891189
could hit disk before WAL is written.
11901190
</p>
11911191
</li><li>Add a script to ask system configuration questions and tune postgresql.conf
1192-
</li><li>Merge xmin/xmax/cmin/cmax back into three header fields
1193-
<p> Before subtransactions, there used to be only three fields needed to
1194-
store these four values. This was possible because only the current
1195-
transaction looks at the cmin/cmax values. If the current transaction
1196-
created and expired the row the fields stored where xmin (same as
1197-
xmax), cmin, cmax, and if the transaction was expiring a row from a
1198-
another transaction, the fields stored were xmin (cmin was not
1199-
needed), xmax, and cmax. Such a system worked because a transaction
1200-
could only see rows from another completed transaction. However,
1201-
subtransactions can see rows from outer transactions, and once the
1202-
subtransaction completes, the outer transaction continues, requiring
1203-
the storage of all four fields. With subtransactions, an outer
1204-
transaction can create a row, a subtransaction expire it, and when the
1205-
subtransaction completes, the outer transaction still has to have
1206-
proper visibility of the row's cmin, for example, for cursors.
1207-
</p>
1208-
<p> One possible solution is to create a phantom cid which represents a
1209-
cmin/cmax pair and is stored in local memory. Another idea is to
1210-
store both cmin and cmax only in local memory.
1211-
</p>
1192+
</li><li>-<em>Merge xmin/xmax/cmin/cmax back into three header fields</em>
12121193
</li><li>Consider ways of storing rows more compactly on disk
12131194
<ul>
12141195
<li>Support a smaller header for short variable-length fields?

0 commit comments

Comments
 (0)