aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-02-07 02:08:08 +0000
committerBruce Momjian <bruce@momjian.us>2006-02-07 02:08:08 +0000
commit04a942e31e598ed42b1ef838e496621ed4cf21fa (patch)
treebcae2d3f402b572af61abbff08e8f42a4f23f2e7
parent8bf47f455fd4fb6594315de17d41e3a4c3c11dc3 (diff)
downloadpostgresql-04a942e31e598ed42b1ef838e496621ed4cf21fa.tar.gz
postgresql-04a942e31e598ed42b1ef838e496621ed4cf21fa.zip
Split up wal-logging items:
< * Allow control over which tables are WAL-logged [walcontrol] > * Allow WAL logging to be turned off for a table, but the table > might be dropped or truncated during crash recovery [walcontrol] < commit. To do this, only a single writer can modify the table, and < writes must happen only on new pages. Readers can continue accessing < the table. This would affect COPY, and perhaps INSERT/UPDATE too. < Another option is to avoid transaction logging entirely and truncate < or drop the table on crash recovery. These should be implemented < using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE | < STABLE | DEFAULT ]. Tables using non-default logging should not use < referential integrity with default-logging tables, and tables using < stable logging probably can not have indexes. One complexity is < the handling of indexes on TOAST tables. > commit. This should be implemented using ALTER TABLE, e.g. ALTER > TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ]. Tables using > non-default logging should not use referential integrity with > default-logging tables. A table without dirty buffers during a > crash could perhaps avoid the drop/truncate. > > * Allow WAL logging to be turned off for a table, but the table would > avoid being truncated/dropped [walcontrol] > > To do this, only a single writer can modify the table, and writes > must happen only on new pages so the new pages can be removed during > crash recovery. Readers can continue accessing the table. Such > tables probably cannot have indexes. One complexity is the handling > of indexes on TOAST tables.
-rw-r--r--doc/TODO29
-rw-r--r--doc/src/FAQ/TODO.html34
2 files changed, 36 insertions, 27 deletions
diff --git a/doc/TODO b/doc/TODO
index b38a717f1e2..be825a74f8f 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -2,7 +2,7 @@
PostgreSQL TODO List
====================
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
-Last updated: Fri Feb 3 22:23:19 EST 2006
+Last updated: Mon Feb 6 21:08:10 EST 2006
The most recent version of this document can be viewed at
http://www.postgresql.org/docs/faqs.TODO.html.
@@ -1024,19 +1024,24 @@ Write-Ahead Log
remove the 'fsync' parameter (which results in an an inconsistent
database) in favor of this capability.
-* Allow control over which tables are WAL-logged [walcontrol]
+* Allow WAL logging to be turned off for a table, but the table
+ might be dropped or truncated during crash recovery [walcontrol]
Allow tables to bypass WAL writes and just fsync() dirty pages on
- commit. To do this, only a single writer can modify the table, and
- writes must happen only on new pages. Readers can continue accessing
- the table. This would affect COPY, and perhaps INSERT/UPDATE too.
- Another option is to avoid transaction logging entirely and truncate
- or drop the table on crash recovery. These should be implemented
- using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
- STABLE | DEFAULT ]. Tables using non-default logging should not use
- referential integrity with default-logging tables, and tables using
- stable logging probably can not have indexes. One complexity is
- the handling of indexes on TOAST tables.
+ commit. This should be implemented using ALTER TABLE, e.g. ALTER
+ TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ]. Tables using
+ non-default logging should not use referential integrity with
+ default-logging tables. A table without dirty buffers during a
+ crash could perhaps avoid the drop/truncate.
+
+* Allow WAL logging to be turned off for a table, but the table would
+ avoid being truncated/dropped [walcontrol]
+
+ To do this, only a single writer can modify the table, and writes
+ must happen only on new pages so the new pages can be removed during
+ crash recovery. Readers can continue accessing the table. Such
+ tables probably cannot have indexes. One complexity is the handling
+ of indexes on TOAST tables.
Optimizer / Executor
diff --git a/doc/src/FAQ/TODO.html b/doc/src/FAQ/TODO.html
index d9d21ac4c74..cd3864d1fc4 100644
--- a/doc/src/FAQ/TODO.html
+++ b/doc/src/FAQ/TODO.html
@@ -8,7 +8,7 @@
<body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF">
<h1><a name="section_1">PostgreSQL TODO List</a></h1>
<p>Current maintainer: Bruce Momjian (<a href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>)<br/>
-Last updated: Fri Feb 3 22:23:19 EST 2006
+Last updated: Mon Feb 6 21:08:10 EST 2006
</p>
<p>The most recent version of this document can be viewed at<br/>
<a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>.
@@ -26,7 +26,7 @@ first.
<ul>
<li>%Remove behavior of postmaster -o
- </li><li>-<em>%Allow pooled connections to list all prepared statements</em>
+ </li><li>-*%Allow pooled connections to list all prepared statements*
<p> This would allow an application inheriting a pooled connection to know
the statements prepared in the current session.
</p>
@@ -79,8 +79,8 @@ first.
</li><li>%Allow postgresql.conf file values to be changed via an SQL
API, perhaps using SET GLOBAL
</li><li>Allow the server to be stopped/restarted via an SQL API
- </li><li>-<em>Issue a warning if a change-on-restart-only postgresql.conf value
- is modified and the server config files are reloaded</em>
+ </li><li>-<em>Issue a warning if a change-on-restart-only postgresql.conf value</em>
+ is modified and the server config files are reloaded
</li><li>Mark change-on-restart-only values in postgresql.conf
</li></ul>
</li><li>Tablespaces
@@ -928,18 +928,22 @@ first.
remove the 'fsync' parameter (which results in an an inconsistent
database) in favor of this capability.
</p>
- </li><li>Allow control over which tables are WAL-logged [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?walcontrol">walcontrol</a>]
+ </li><li>Allow WAL logging to be turned off for a table, but the table
+ might be dropped or truncated during crash recovery [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?walcontrol">walcontrol</a>]
<p> Allow tables to bypass WAL writes and just fsync() dirty pages on
- commit. To do this, only a single writer can modify the table, and
- writes must happen only on new pages. Readers can continue accessing
- the table. This would affect COPY, and perhaps INSERT/UPDATE too.
- Another option is to avoid transaction logging entirely and truncate
- or drop the table on crash recovery. These should be implemented
- using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
- STABLE | DEFAULT ]. Tables using non-default logging should not use
- referential integrity with default-logging tables, and tables using
- stable logging probably can not have indexes. One complexity is
- the handling of indexes on TOAST tables.
+ commit. This should be implemented using ALTER TABLE, e.g. ALTER
+ TABLE PERSISTENCE [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo? DROP | TRUNCATE | DEFAULT "> DROP | TRUNCATE | DEFAULT </a>]. Tables using
+ non-default logging should not use referential integrity with
+ default-logging tables. A table without dirty buffers during a
+ crash could perhaps avoid the drop/truncate.
+</p>
+ </li><li>Allow WAL logging to be turned off for a table, but the table would
+ avoid being truncated/dropped [<a href="http://momjian.postgresql.org/cgi-bin/pgtodo?walcontrol">walcontrol</a>]
+<p> To do this, only a single writer can modify the table, and writes
+ must happen only on new pages so the new pages can be removed during
+ crash recovery. Readers can continue accessing the table. Such
+ tables probably cannot have indexes. One complexity is the handling
+ of indexes on TOAST tables.
</p>
</li></ul>
<h1><a name="section_20">Optimizer / Executor</a></h1>