Re: WAL bandwidth

From: Torsten Förtsch <torsten(dot)foertsch(at)gmx(dot)net>
To: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: WAL bandwidth
Date: 2014-05-22 19:31:39
Message-ID: 537E509B.1000301@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 22/05/14 21:05, Jeff Janes wrote:
> time and again I need to build indexes. If they are big, that
> generates
> a lot of WAL data that needs to be replicated to streaming
> replication
> slaves. Usually these slaves don't lag behind noticeably. So, the
> application often reads from them. Well, unless I build indexes and,
> thus, create a huge amount of WAL in a short period of time.
>
>
> Are these built CONCURRENTLY?

yes

> What I'd like to have is something where I can set the max.
> bandwidth
> with which the index generating backend may generate WAL data. I
> seem to
> remember to have seen a discussion about something similar but can't
> recall where.
>
> Is there anything I can do about that problem in 9.3 or 9.4?
>
> I already have a function that waits for the streaming slaves to
> catch
> up. But that mitigates the problem only at a very crude level.
> I'd like
> to be able to set that bandwidth to, say, 10mbit/sec. Then I can
> be sure
> that all my replicas are fine. How long the index creation
> takes, does
> not matter.
>
>
> This does not appear the domain of PostgreSQL as much as the domain
> of your OS and network layer.
>
>
> The OS and network have little choice but to process the WAL in the
> order it is generated. If you want to throttle the generation of WAL
> by background maintenance operations so they don't interfere with the
> processing of WAL generated by bread-and-butter transaction processing,
> that is something that only PostgreSQL can do.

That's what I want, to throttle the rate at which WAL is generated by
maintenance operations.

I take it, there is no such thing by now. Would it be a useful addition?

I am not sure if I have the time to implement it. I have had a cursory
look at the code before, just to find out how things work, but never
changed something. What do you think, is it complicated to implement?

Torsten

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message John R Pierce 2014-05-22 19:37:59 Re: WAL bandwidth
Previous Message Joshua D. Drake 2014-05-22 19:17:12 Re: WAL bandwidth