pg_archivecleanup with multiple slaves

From: Ben Lancaster <benlancaster(at)holler(dot)co(dot)uk>
To: pgsql-admin(at)postgresql(dot)org
Subject: pg_archivecleanup with multiple slaves
Date: 2011-05-20 10:59:37
Message-ID: D1FBF69C-F380-4F16-AF57-20A32CB4850C@holler.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi,

First post, forgive me if this is better suited to pgsql-general.

I've got streaming replication set up with two slave servers (PostgreSQL 9.0 on Ubuntu 10.04 LTS). The master pushes the WAL to an NFS export, which is in turn mounted on and picked up by the two slaves.

The problem I have is that pg_archivecleanup (running on one of the slaves) was removing WAL logs before the other slave had picked up the changes, thus breaking replication for the second slave. As an interim fix, I simply disabled the automatic cleanup and figured I'd worry about it later.

Well, later is now and I'm running out of HDD space. So, what's the best (or perhaps, correct) way to handle cleaning up WAL archives when there's more than one slave? My first thought was prefixing the pg_archivecleanup call in recovery.conf's archive_cleanup_command with a "sleep" of a few seconds to allow both slaves to pick up changes before WAL files are cleaned up, but I'm afraid I'll end up with some weird race conditions, with loads of sleeping processes waiting to cleanup WAL files that have previously been cleaned up by a recently awoken process.

Thanks in advance,

Ben

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tim 2011-05-20 11:53:53 Re: pg_archivecleanup with multiple slaves
Previous Message Alan Gutierrez 2011-05-20 07:12:14