| From: | Andres Freund <andres(at)anarazel(dot)de> |
|---|---|
| To: | olivier(dot)gosseaume(at)free(dot)fr |
| Cc: | pgsql-bugs(at)postgresql(dot)org |
| Subject: | Re: BUG #13484: Performance problem with logical decoding |
| Date: | 2015-07-06 21:23:32 |
| Message-ID: | 20150706212332.GG340@alap3.anarazel.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On 2015-07-06 23:21:26 +0200, Andres Freund wrote:
> On 2015-07-06 23:05:27 +0200, Andres Freund wrote:
> > Ugh, I have a theory. I guess you can't easily recompile postgres with a
> > patch and test again? I don't have access to windows...
>
> So the problem I'm seing is that there's a typo/bug in
> ReorderBufferSerializeTXN(). It closes the filehandle after each
> individual spilled file instead of keeping it open for up to 16MB of
> WAL. On linux that doesn't hurt particularly much, the file isn't
> flushed to disk. Which presumably is why we haven't noticed. But if
> windows does that differently...
Hrmpf, just sent the last part of this message to a different thread.
The fix is just to change
if (fd == -1 || XLByteInSeg(change->lsn, curOpenSegNo))
into
if (fd == -1 || !XLByteInSeg(change->lsn, curOpenSegNo))
the bug doesn't have any correctness implications afaics, just
performance. We read all the spilled files till the end, so even change
spilled to the wrong segment gets picked up.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | olivier.gosseaume | 2015-07-06 21:44:54 | Re: BUG #13484: Performance problem with logical decoding |
| Previous Message | Andres Freund | 2015-07-06 21:21:26 | Re: BUG #13484: Performance problem with logical decoding |