On Thu, Jun 12, 2014 at 12:45 PM, Andres Freund <and...@2ndquadrant.com>
wrote:
> On 2014-06-12 08:55:59 +0530, Amit Kapila wrote:
> > Function pg_create_logical_replication_slot() is trying to
> > save slot twice once during CreateInitDecodingContext() and
> > then in ReplicationSlotPersist(), isn't it better if we can make
> > it do it just once?
>
> Doesn't work here. In the first save it's not yet marked as persistent -
> but we still need to safely reserve the xmin.

Okay, but if it crashes before saving the persistency to permanent
file and there remains a .tmp for this replication slot which it created
during save of this persistency information, then also xmin will get
lost, because during startup it will not consider such a slot.

> It's also not something
> that should happen very frequently, so I'm not worried about the
> overhead.

Right, just looking from the purpose of need for same.

> > 8. Is there a chance of inconsistency, if pg_restxlog resets the
> > xlog and after restart, one of the slots contains xlog position
> > older than what is resetted by pg_resetxlog?
>
> Yes. There's lots of ways to screw over your database by using
> pg_resetxlog.

Thats right, trying to think if there could be any thing which
won't even allow the server to get started due to replication slots
after pg_resetxlog.  As per my current understanding, I don't think
there is any such problem.


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Reply via email to