Re: Replication identifiers, take 4 - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Replication identifiers, take 4
Date
Msg-id 20150421120856.GG14483@alap3.anarazel.de
Whole thread Raw
In response to Re: Replication identifiers, take 4  (Andres Freund <andres@anarazel.de>)
Responses Re: Replication identifiers, take 4
Re: Replication identifiers, take 4
List pgsql-hackers
On 2015-04-20 10:28:02 +0200, Andres Freund wrote:
> On 2015-04-20 11:26:29 +0300, Heikki Linnakangas wrote:
> > I just realized that it talks about "replication identifier" as the new
> > fundamental concept. The system table is called "pg_replication_identifier".
> > But that's like talking about "index identifiers", instead of just indexes,
> > and calling the system table pg_index_oid.
> >
> > The important concept this patch actually adds is the *origin* of each
> > transaction. That term is already used in some parts of the patch. I think
> > we should roughly do a search-replace of "replication identifier" ->
> > "replication origin" to the patch. Or even "transaction origin".
>
> Sounds good to me.

I'm working on changing this (I've implemented the missing WAL
bits). I'd like to discuss the new terms for a sec, before I go and
revise the docs.

I'm now calling the feature 'replication progress tracking'. There's
"replication origins" and there's progress tracking infrastructure that
tracks how far data from a "replication origin" has replicated.

Catalog wise there's an actual table 'pg_replication_origin' that maps
between 'roident' and 'roname'. There's a pg_replication_progress view
(used to be named pg_replication_identifier_progress). I'm not sure if
the latter name isn't too generic? Maybe
pg_logical_replication_progress?

I've now named the functions:

* pg_replication_origin_create
* pg_replication_origin_drop
* pg_replication_origin_get (map from name to id)
* pg_replication_progress_setup_origin : configure session to replicate from a specific origin
* pg_replication_progress_reset_origin
* pg_replication_progress_setup_tx_details : configure per transaction details (LSN and timestamp currently)
* pg_replication_progress_is_replaying : Is a origin configured for the session
* pg_replication_progress_advance : "manually" set the replication progress to a value. Primarily useful for copying
valuesfrom other systems and such.
 
* pg_replication_progress_get : How far did replay progress for a certain origin
* pg_get_replication_progress : SRF returning the replay progress for all origin.

Any comments?

Andres



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Parallel Seq Scan
Next
From: Michael Paquier
Date:
Subject: Re: Fix broken Install.bat when target directory contains a space