On 05/13/2015 04:29 PM, Robert Haas wrote:
> On Wed, May 13, 2015 at 8:53 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
>> Our manual says that archive_command should refuse to overwrite an existing
>> file. But to work-around the double-archival problem, where the same file is
>> archived twice, it would be even better if it would simply return success if
>> the file exists, *and has identical contents*. I don't know how to code that
>> logic in a simple one-liner though.
>
> This is why we really, really need that pg_copy command that was
> proposed a while back.
Yeah..
I took a step back and looked at the big picture again:
If we just implement the "always" mode, and you have a pg_copy command
or similar that handles duplicates correctly, you don't necessarily need
the "shared" mode at all. You can just set archive_command='always', and
have the master and standby archive to the same location. As long as the
archive_command works correctly and is race-free, that should work.
I cut back the patch to implement just the "always" mode. The "shared"
mode might still make sense as a future patch, as I think it's easier to
understand and has less strict requirements for the archive_command, but
let's take one step at a time.
So attached is a patch that just adds the "always" mode. This is pretty
close to what Fujii submitted long ago.
- Heikki