From: | "osumi(dot)takamichi(at)fujitsu(dot)com" <osumi(dot)takamichi(at)fujitsu(dot)com> |
---|---|
To: | 'Japin Li' <japinli(at)hotmail(dot)com> |
Cc: | 'Amit Kapila' <amit(dot)kapila16(at)gmail(dot)com>, Petr Jelinek <petr(dot)jelinek(at)enterprisedb(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | RE: Truncate in synchronous logical replication failed |
Date: | 2021-04-17 04:03:48 |
Message-ID: | OSBPR01MB4888F6D1DF0A6DF296D81A3DED4B9@OSBPR01MB4888.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Saturday, April 17, 2021 12:53 AM Japin Li <japinli(at)hotmail(dot)com>
> On Fri, 16 Apr 2021 at 17:19, osumi(dot)takamichi(at)fujitsu(dot)com
> <osumi(dot)takamichi(at)fujitsu(dot)com> wrote:
> > On Friday, April 16, 2021 5:50 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
> wrote:
> >> On Fri, Apr 16, 2021 at 12:56 PM osumi(dot)takamichi(at)fujitsu(dot)com
> >> <osumi(dot)takamichi(at)fujitsu(dot)com> wrote:
> >> >
> >> > > Thanks for your reminder. It might be a way to solve this problem.
> >> > Yeah. I've made the 1st patch for this issue.
> >> >
> >> > In my env, with the patch
> >> > the TRUNCATE in synchronous logical replication doesn't hang.
> >> >
> >>
> >> Few initial comments:
> >> =====================
> >> 1.
> >> + relreplindex = relation->rd_replidindex;
> >> +
> >> + /*
> >> + * build attributes to idindexattrs.
> >> + */
> >> + idindexattrs = NULL;
> >> + foreach(l, indexoidlist)
> >> + {
> >> + Oid indexOid = lfirst_oid(l);
> >> + Relation indexDesc;
> >> + int i;
> >> + bool isIDKey; /* replica identity index */
> >> +
> >> + indexDesc = RelationIdGetRelation(indexOid);
> >>
> >> When you have oid of replica identity index (relreplindex) then what
> >> is the need to traverse all the indexes?
> > Ok. No need to traverse all the indexes. Will fix this part.
> >
> >> 2.
> >> It is better to name the function as RelationGet...
> > You are right. I'll modify this in my next version.
> >
>
> I took the liberty to address review comments and provide a v2 patch on top
> of your's v1 patch, also merge the test case.
>
> Sorry for attaching.
No problem. Thank you for updating the patch.
I've conducted some cosmetic changes. Could you please check this ?
That's already applied by pgindent.
I executed RT for this and made no failure.
Just in case, I executed 010_truncate.pl test 100 times in a tight loop,
which also didn't fail.
Best Regards,
Takamichi Osumi
Attachment | Content-Type | Size |
---|---|---|
truncate_in_synchronous_logical_replication_v03.patch | application/octet-stream | 5.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2021-04-17 04:30:01 | Re: Forget close an open relation in ReorderBufferProcessTXN() |
Previous Message | Justin Pryzby | 2021-04-17 03:18:37 | Re: terminate called after throwing an instance of 'std::bad_alloc' |