> On 11 Feb 2021, at 14:10, Bruce Momjian <br...@momjian.us> wrote:
> 
> On Wed, Feb 10, 2021 at 01:26:18PM -0500, Bruce Momjian wrote:
>> On Wed, Feb 10, 2021 at 03:25:58PM +0100, Magnus Hagander wrote:
>>> A fairly large amount of this complexity comes out of the fact that it
>>> now supports restarting and tracks checksums on a per-table basis. We
>>> skipped this in the original patch for exactly this reason (that's not
>>> to say there isn't a fair amount of complexity even without it, but it
>>> did substantially i increase both the size and the complexity of the
>>> patch), but in the review of that i was specifically asked for having
>>> that added. I personally don't think it's worth that complexity but at
>>> the time that seemed to be a pretty strong argument. So I'm not
>>> entirely sure how to move forward with that...
>>> 
>>> is your impression that it would still be too complicated, even without 
>>> that?
>> 
>> I was wondering why this feature has stalled for so long --- now I know.
>> This does highlight the risk of implementing too many additions to a
>> feature. I am working against this dynamic in the cluster file
>> encryption feature I am working on.
> 
> Oh, I think another reason this patchset has had problems is related to
> something I mentioned in 2018:
> 
>       https://www.postgresql.org/message-id/20180801163613.ga2...@momjian.us
> 
>       This patchset is weird because it is perhaps our first case of trying to
>       change the state of the server while it is running.  We just don't have
>       an established protocol for how to orchestrate that, so we are limping
>       along toward a solution.  Forcing a restart is probably part of that
>       primitive orchestration.  We will probably have similar challenges if we
>       ever allowed Postgres to change its data format on the fly.  These
>       challenges are one reason pg_upgrade only modifies the new cluster,
>       never the old one.
> 
> I don't think anyone has done anything wrong --- rather, it is what we
> are _trying_ to do that is complex.

Global state changes in a cluster are complicated, and are unlikely to never
not be.  By writing patches to attempts such state changes we can see which
pieces of infrastructure we're lacking to reduce complexity.  A good example is
the ProcSignalBarrier work that Andres and Robert did, inspired in part by this
patch IIUC.  The more we do, the more we learn.

--
Daniel Gustafsson               https://vmware.com/



Reply via email to