Re: found xmin from before relfrozenxid on pg_catalog.pg_authid - Mailing list pgsql-hackers

From Nishant, Fnu
Subject Re: found xmin from before relfrozenxid on pg_catalog.pg_authid
Date
Msg-id 5AA972C7-DF64-4EAF-8828-A21AE05E18CB@amazon.com
Whole thread Raw
In response to Re: found xmin from before relfrozenxid on pg_catalog.pg_authid  (Andres Freund <andres@anarazel.de>)
Responses Re: found xmin from before relfrozenxid on pg_catalog.pg_authid  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi,
We were working on this issue and thinking if we could actually make pg_class(rd_rel) part of recache entry
upgradable.
To achieve this we can allocate Form_pg_class structures (for shared relations… a small number) on shared memory.
We do not need global pg_internal_init file as new backend during boot up will be set to point at already stored
Form_pg_classstructure.
 

Thanks,
Nishant

On 5/27/18, 1:01 PM, "Andres Freund" <andres@anarazel.de> wrote:

    Hi,
    
    On 2018-05-27 13:22:21 -0400, Tom Lane wrote:
    > But I don't think there's any need for special magic here: we just
    > have to accept the fact that there's a need to flush that cache
    > sometimes.  In normal use it shouldn't happen often enough to be a
    > performance problem.
    
    Yea, it's not that problematic. We already remove the local init
    file. I started out trying to write a version of invalidation that also
    WAL logs shared inval, but that turns out to be hard to do without
    breaking compatibilty.  So I think we should just always unlink the
    shared one - that seems to work well.
    
    
    > FWIW, I'm not on board with "memcpy the whole row".  I think the right
    > thing is more like what we do in RelationReloadIndexInfo, ie copy over
    > the specific fields that we expect to be mutable.
    
    But that's what RelationReloadIndexInfo() etc do?
        relp = (Form_pg_class) GETSTRUCT(pg_class_tuple);
        memcpy(relation->rd_rel, relp, CLASS_TUPLE_SIZE);
    I don't think we need to modify anything outside of rd_rel at this
    point?
    
    I've a patch that seems to work, that mostly needs some comment
    polishing.
    
    Greetings,
    
    Andres Freund
    
    


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Allowing printf("%m") only where it actually works
Next
From: Tom Lane
Date:
Subject: Re: Allowing printf("%m") only where it actually works