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

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Advice request : simultaneous function/data updates on many databases
Date: 2020-03-04 22:41:32
Message-ID: 212985ab-5e3a-a9a6-44d8-9ad5afbf6524@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 3/4/20 4:33 PM, Rory Campbell-Lange wrote:
> 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.

The only solution to that is parallel updates (not all 200 at once!!) with a
progress bar.

>>>>> 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.
>

--
Angular momentum makes the world go 'round.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Guyren Howe 2020-03-04 22:42:01 Re: Advice request : simultaneous function/data updates on many databases
Previous Message Rory Campbell-Lange 2020-03-04 22:33:42 Re: Advice request : simultaneous function/data updates on many databases