Re: Cleanup isolation specs from unused steps - Mailing list pgsql-hackers

From Asim R P
Subject Re: Cleanup isolation specs from unused steps
Date
Msg-id CANXE4TfHO4PTG4pz_r8b4-d-co9DL5UyCbJiwiH5HykGNz8cTw@mail.gmail.com
Whole thread Raw
In response to Re: Cleanup isolation specs from unused steps  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: Cleanup isolation specs from unused steps
List pgsql-hackers
On Thu, Aug 22, 2019 at 12:47 AM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
>
> On 2019-Aug-21, Melanie Plageman wrote:
>
> > In Greenplum, we mainly add new tests to a separate isolation
> > framework (called isolation2) which uses a completely different
> > syntax. It doesn't use isolationtester at all. So, I haven't had a use
> > case to add long options to isolationtester yet :)
>
> Is that other framework somehow more capable?
>

The ability to declare a step as blocking, as Melanie mentioned upthread ("&" prefix), makes it more capable.  The tester, when encounters such a step, makes sure that the command in that step is blocking and moves on to run subsequent commands.  The isolationtester, on the other hand, treats a step as blocking only when the command waits on a lock.  That seems restrictive.  E.g. what if a command waits on a latch, as part of a valid interleaving of concurrent transactions?  The isolation tester cannot detect such a case and it will keep waiting and eventually fail the test with a timeout.

As part of the fault injector patch set [1], I added a new "blocking" keyword to isolation grammar so that a step can be declared as blocking.  See patch 0002-Add-syntax-to-declare-a-step-that-is-expected-to-block.

Asim

pgsql-hackers by date:

Previous
From: Anastasia Lubennikova
Date:
Subject: Re: [HACKERS] [WIP] Effective storage of duplicates in B-tree index.
Next
From: Andrew Dunstan
Date:
Subject: Re: mingw32 floating point diff