From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
Cc: | pgsql-patches(at)postgresql(dot)org, Alon Goldshuv <agoldshuv(at)greenplum(dot)com> |
Subject: | Re: WAL bypass for CTAS |
Date: | 2005-06-20 18:50:19 |
Message-ID: | 19788.1119293419@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
Simon Riggs <simon(at)2ndquadrant(dot)com> writes:
> I enclose a complete patch for avoiding WAL usage for CREATE TABLE AS
> SELECT, when not in archive mode (PITR). The main use case for this is
> large BI environments that create summary tables or prejoined tables,
> though there are many general applications.
Applied after heavy corrections --- there were a number of things wrong
with this "simple" patch, starting with having gotten the tests
backwards :-(, and extending to not having actually flushed the data
before commit (smgrimmedsync isn't enough, you have to
FlushRelationBuffers).
A consideration we had all missed in the original discussions is that
if the transaction doesn't emit any WAL records at all,
RecordTransactionCommit will think that it need not WAL-log the
transaction commit, leading to the possibility that the commit is lost
even though all the data is preserved :-(
This is not a hazard for CREATE TABLE AS, since it will certainly have
emitted WAL records while creating the table's catalog entries. It will
be a very real hazard for COPY however. The cleanest solution I can
think of is that the COPY code should emit a WAL record for the first
tuple copied in, but not for later ones. To this end, I separated the
"use_wal" and "use_fsm" aspects of what the patch was doing.
I didn't apply the freespace.c changes either; that struck me as a
serious kluge with no real benefit. We can just omit updating the FSM's
running average, if it even has one. (ISTM there's a reasonable
argument to be made that the tuple sizes during CREATE/COPY might not be
representative of later requests anyway.)
Patch as applied is attached.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
unknown_filename | text/plain | 14.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Jim C. Nasby | 2005-06-20 19:25:05 | Issue with plpython write_file and read_file tests |
Previous Message | Bruce Momjian | 2005-06-20 18:41:32 | Re: WAL bypass for CTAS |
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2005-06-20 20:55:12 | Re: WAL bypass for CTAS |
Previous Message | Bruce Momjian | 2005-06-20 18:41:32 | Re: WAL bypass for CTAS |