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 @@

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. @@ -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.

  • Optimizer / Executor