Re: Re: [GSOC][weekly report 9] Eliminate O(N^2) scaling from rw-conflict tracking in serializable transactions

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Mengxing Liu <liu-mx15(at)mails(dot)tsinghua(dot)edu(dot)cn>, kgrittn <kgrittn(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Re: [GSOC][weekly report 9] Eliminate O(N^2) scaling from rw-conflict tracking in serializable transactions
Date: 2017-08-09 19:40:57
Message-ID: CA+Tgmoart=qNk7V9rT+Qjjs=OQCUUF4y8o9dXOARhaEBBwaMWQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Aug 7, 2017 at 1:51 PM, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
> * the whole predicate.c stuff is written using SHM_QUEUE. I suppose
> SHM_QUEUE works just fine, but predicate.c was being written at about
> the same time (or a bit earlier) than the newer ilist.c interface was
> being created, which I think had more optimization work thrown in.
> Maybe it would be good for predicate.c to ditch use of SHM_QUEUE and
> use ilist.c interfaces instead? We could even think about being less
> strict about holding exclusive lock on SerializableFinished for the
> duration of ClearOldPredicateLocks, i.e. use only a share lock and
> only exchange for exclusive if a list modification is needed.

I think we should rip SHM_QUEUE out completely and get rid of it. It
doesn't make sense to have two implementations, one of which by its
name is only for use in shared memory.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2017-08-09 20:03:44 More fun with container types
Previous Message Robert Haas 2017-08-09 19:37:37 Re: why not parallel seq scan for slow functions