From 04a942e31e598ed42b1ef838e496621ed4cf21fa Mon Sep 17 00:00:00 2001
From: Bruce Momjian
Date: Tue, 7 Feb 2006 02:08:08 +0000
Subject: [PATCH] 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.
---
doc/TODO | 29 +++++++++++++++++------------
doc/src/FAQ/TODO.html | 34 +++++++++++++++++++---------------
2 files changed, 36 insertions(+), 27 deletions(-)
diff --git a/doc/TODO b/doc/TODO
index b38a717f1e..be825a74f8 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 d9d21ac4c7..cd3864d1fc 100644
--- a/doc/src/FAQ/TODO.html
+++ b/doc/src/FAQ/TODO.html
@@ -8,7 +8,7 @@
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.
@@ -26,7 +26,7 @@ first.
Tablespaces
@@ -928,18 +928,22 @@ first.
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.