Thanks for raizing this up, Robert and the comment, Andres.

At Tue, 13 Sep 2022 07:00:42 +0530, Dilip Kumar <dilipbal...@gmail.com> wrote 
in 
> On Tue, Sep 13, 2022 at 3:22 AM Andres Freund <and...@anarazel.de> wrote:
> 
> >
> > It's not obvious to me that it's the right design (or even correct) to ask
> > reorderbuffer about an xid being a subxid. Maybe I'm missing something, but
> > why would reorderbuffer even be guaranteed to know about all these subxids?
> 
> Yeah, you are right, the reorderbuffer will only know about the
> transaction for which changes got added to the reorder buffer.  So
> this seems not to be the right design idea.

That function is called after the SnapBuild reaches
SNAPBUILD_CONSISTENT state ,or SnapBuildInitialSnapshot() rejects
other than that state. That is, IIUC the top-sub relationship of all
the currently running transactions is fully known to reorder buffer.
We need a comment about that.

> > I wonder if a better fix here wouldn't be to allow importing a snapshot 
> > with a
> > larger ->xid array. Yes, we can't do that in CurrentSnapshotData, but IIRC 
> > we
> > need to be in a transactional snapshot anyway, which is copied anyway?
> 
> Yeah when I first found this issue, I thought that should be the
> solution.  But later it went in a different direction.

I think that that is the best solution if rbtxn_is_known_subxzact() is
known to be unreliable at the time.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center


Reply via email to