[HACKERS] Using non-sequential timelines in order to help with possible collisions - Mailing list pgsql-hackers

From Brian Faherty
Subject [HACKERS] Using non-sequential timelines in order to help with possible collisions
Date
Msg-id CAMLsqiRvA=jx8W8eSBOznGHH7HSAcpSroxgwyY=4kjbyxQ36KA@mail.gmail.com
Whole thread Raw
Responses Re: [HACKERS] Using non-sequential timelines in order to help withpossible collisions
List pgsql-hackers
Hey hackers,
  I was working with replication and recovery the other day and noticed that there were scenarios where I could cause multiple servers to enter the same timeline while possibly having divergent data. One such scenario is Master A and Replica B are both on timeline 1. There is an event that causes Replica B to become promoted which changes it to timeline 2. Following this, you perform a restore on Master A to a point before the event happened. Once Postgres completes this recovery on Master A, it will switch over to timeline 2. There are now WAL files that have been written to timeline 2 from both servers.

From this scenario, I would like to suggest considering using non-sequential timelines. From what I have investigated so far, I believe the *.history files in the WAL directory already have all the timelines id's in them and are in order. If we could make those timeline ids to be a bit more unique/random, and still rely on the ordering in the *.history file, I think this would help prevent multiple servers on the same timeline with divergent data.

I was hoping to begin a conversation on whether or not non-sequential timelines are a good idea before I looked at the code around timelines.

--
Brian Faherty

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Bug in ExecModifyTable function and trigger issues for foreign tables
Next
From: Ashutosh Sharma
Date:
Subject: Re: [HACKERS] pl/perl extension fails on Windows