Re: Advice request : simultaneous function/data updates on many databases

From: Rory Campbell-Lange <rory(at)campbell-lange(dot)net>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Advice request : simultaneous function/data updates on many databases
Date: 2020-03-04 22:33:42
Message-ID: 20200304223342.GA11628@campbell-lange.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 04/03/20, Adrian Klaver (adrian(dot)klaver(at)aklaver(dot)com) wrote:
> On 3/4/20 2:22 PM, Rory Campbell-Lange wrote:
> > On 04/03/20, Adrian Klaver (adrian(dot)klaver(at)aklaver(dot)com) wrote:
> > > On 3/4/20 2:04 PM, Rory Campbell-Lange wrote:
> > > > We have many databases of the same type separated for data governance
> > > > reasons. They, however, share the same web front-end code.
> > > >
> > > > Presently, replacing functions and performing data updates on the
> > > > databases in series often executes across all databases in less than a
> > > > minute. (The updates are currently done with simple sql files connecting
> > > > to each database and then loading a stub file pointing to each function
> > > > to drop and reload, and running the data update queries.)
> > > >
> > > > However, for larger updates, the time when the front end code is
> > > > out-of-step with the database can cause end-user problems.
> > >
> > > So the issue is synchronization between the code in the database and the
> > > code outside the database?
> > >
> > > I'm assuming the problems are changes in function signatures and return
> > > values?
> >
> > That is one problem; sometimes we also need to make some table
> > definition or data changes.
>
> Alright, but the general issue is that the world as seen by the database can
> be different from that seen by the front end code.
>
> So the solution is to make those world views sync, or am I missing
> something?

Essentially we wish to reduce the window where the frontend and backend
aren't synchronised.

If we have (for example) 200 databases which each take 2 seconds to
update, a client could be on the wrong frontend code for over 6 minutes.

> > > > Unfortunately our schema arrangement isn't clean enough to swap out
> > > > function schemas in a transaction to sort out that part of the problem
> > > > (if in fact that would work anyway).
> > > >
> > > > One solution might be to do the updates in parallel. Another thought
> > > > would be to somehow execute the code update from a text field in a table
> > > > in each database triggered with pg_cron.
> > > >
> > > > Bearing in mind the possible problems of connection saturation or
> > > > massive IO spikes, I'd be grateful to learn of any thoughts on how to
> > > > negotiate this problem.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ron 2020-03-04 22:41:32 Re: Advice request : simultaneous function/data updates on many databases
Previous Message David G. Johnston 2020-03-04 22:30:48 Re: Advice request : simultaneous function/data updates on many databases