|
8 | 8 | <body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
|
9 | 9 | <h1><a name="section_1">PostgreSQL TODO List</a></h1>
|
10 | 10 | <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 |
12 | 12 | </p>
|
13 | 13 | <p>The most recent version of this document can be viewed at<br/>
|
14 | 14 | <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>
|
1189 | 1189 | could hit disk before WAL is written.
|
1190 | 1190 | </p>
|
1191 | 1191 | </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> |
1212 | 1193 | </li><li>Consider ways of storing rows more compactly on disk
|
1213 | 1194 | <ul>
|
1214 | 1195 | <li>Support a smaller header for short variable-length fields?
|
|
0 commit comments