Re: Re: GiST optimizing memmoves in gistplacetopage for fixed-size updates [PoC]

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: amborodin(at)acm(dot)org
Cc: Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Oleg Bartunov <obartunov(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Sergey Mirvoda <sergey(at)mirvoda(dot)com>
Subject: Re: Re: GiST optimizing memmoves in gistplacetopage for fixed-size updates [PoC]
Date: 2016-07-04 13:58:51
Message-ID: CAA4eK1+wS4Oz99wz+4KV0S5fbM7ACWqA+mzsEr1ugn8brbRLtg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jul 4, 2016 at 4:52 PM, Andrew Borodin <borodin(at)octonica(dot)com> wrote:
> Here is a patch with corrections from Alexander Korotkov.
> My tests, check and check-world show no problems against Ubuntu LTS 14 x64 VM.
>
>

- PageIndexTupleDelete(page, oldoffnum);
- gistfillbuffer(page, itup, ntup, InvalidOffsetNumber);
+ {
+ /*if we have just one tuple to update we replace it on-place on page*/
+ if(ntup == 1)
+ {
+ PageIndexTupleOverwrite(page,oldoffnum,*itup);
+ }
+ else
+ {
+ /*this corner case is here to support mix calls case (see comment above)*/
+ PageIndexTupleDelete(page, oldoffnum);
+ gistfillbuffer(page, itup, ntup, InvalidOffsetNumber);
+ }

Here, you have changed the way tuple is added on a page, but still the
WAL record is same as before. I think WAL replay should perform the
action in a same way as we have done when original operation is
performed. If not, then it can change the organization of page which
might lead to failure in replay of consecutive WAL records.

+ /*if we have just one tuple to update we replace it on-place on page*/

In comments, we always leave a space both in the beginning and at the
end of a comment. See comments in nearby code.

--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2016-07-04 14:33:38 Re: to_date_valid()
Previous Message Vladimir Borodin 2016-07-04 13:30:51 Re: [HACKERS] 9.4 -> 9.5 regression with queries through pgbouncer on RHEL 6