Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD
Date
Msg-id CAA4eK1J81sA-K--5NaiF60EufBfpF-voZ-FguLCyg98Hx-2heA@mail.gmail.com
Whole thread Raw
In response to Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD
List pgsql-hackers
On Mon, Dec 11, 2017 at 8:21 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> Hi hackers,
>
>
> ... and then it called _bt_parallel_seize() itself, in violation of
> the rule (by my reading of the code) that you must call
> _bt_parallel_release() (via _bt_readpage()) or _bt_parallel_done()
> after seizing the scan.  If you call _bt_parallel_seize() again
> without doing that first, you'll finish up waiting for yourself
> forever.  Does this theory make sense?
>

Yes, I think if the current page is half-dead or deleted, we need to
set the next page to be scanned and release the parallel scan.  This
has to be done for both forward and backward scans.

Thanks for looking into it.  I will see if we can write some test.  In
the meantime if possible, can you please request Patrick Hemmer to
verify the attached patch?

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

Attachment

pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Added PostgreSQL internals learning materials in Developer FAQ
Next
From: Michael Paquier
Date:
Subject: Re: SIGPIPE in TAP tests