From: | Antonin Houska <ah(at)cybertec(dot)at> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Slow I/O can break throttling of base backup |
Date: | 2016-12-16 10:24:30 |
Message-ID: | 27929.1481883870@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Antonin Houska <ah(at)cybertec(dot)at> wrote:
> It seems to be my bug. I'll check tomorrow.
I could reproduce the problem by adding sufficient sleep time to the
loop.
> Magnus Hagander <magnus(at)hagander(dot)net> wrote:
>> I wonder if the else if (sleep > 0) at the bottom of throttle() should just
>> be a simple else and always run, resetting last_throttle?
I agree. In fact, I could simplify the code even more.
Since (elapsed + sleep) almost equals to GetCurrentIntegerTimestamp(), we can
use the following statement unconditionally (I think I tried too hard to avoid
calling GetCurrentIntegerTimestamp too often in the original patch):
throttled_last = GetCurrentIntegerTimestamp();
Thus we can also get rid of the "else" branch that clears both "sleep" and
"wait_result".
(The patch contains minor comment refinement that I found useful when seeing
the code after years.)
--
Antonin Houska
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt
Web: http://www.postgresql-support.de, http://www.cybertec.at
Attachment | Content-Type | Size |
---|---|---|
throttling.patch | text/x-diff | 1.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Stas Kelvich | 2016-12-16 11:00:46 | Re: Speedup twophase transactions |
Previous Message | Mithun Cy | 2016-12-16 10:16:17 | Re: Cache Hash Index meta page. |