Re: [HACKERS] Parallel Append implementation

Amit Khandekar <amitdkhan.pg@gmail.com>

From: Amit Khandekar <amitdkhan.pg@gmail.com>
To: Rafia Sabih <rafia.sabih@enterprisedb.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, Andres Freund <andres@anarazel.de>, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-11-21T08:52:57Z
Lists: pgsql-hackers

Attachments

On 21 November 2017 at 12:44, Rafia Sabih <rafia.sabih@enterprisedb.com> wrote:
> On Mon, Nov 13, 2017 at 12:54 PM, Amit Khandekar <amitdkhan.pg@gmail.com> wrote:
>> Thanks a lot Robert for the patch. I will have a look. Quickly tried
>> to test some aggregate queries with a partitioned pgbench_accounts
>> table, and it is crashing. Will get back with the fix, and any other
>> review comments.
>>
>> Thanks
>> -Amit Khandekar
>
> I was trying to get the performance of this patch at commit id -
> 11e264517dff7a911d9e6494de86049cab42cde3 and TPC-H scale factor 20
> with the following parameter settings,
> work_mem = 1 GB
> shared_buffers = 10GB
> effective_cache_size = 10GB
> max_parallel_workers_per_gather = 4
> enable_partitionwise_join = on
>
> and the details of the partitioning scheme is as follows,
> tables partitioned = lineitem on l_orderkey and orders on o_orderkey
> number of partitions in each table = 10
>
> As per the explain outputs PA was used in following queries- 1, 3, 4,
> 5, 6, 7, 8, 10, 12, 14, 15, 18, and 21.
> Unfortunately, at the time of executing any of these query, it is
> crashing with the following information in  core dump of each of the
> workers,
>
> Program terminated with signal 11, Segmentation fault.
> #0  0x0000000010600984 in pg_atomic_read_u32_impl (ptr=0x3ffffec29294)
> at ../../../../src/include/port/atomics/generic.h:48
> 48 return ptr->value;
>
> In case this a different issue as you pointed upthread, you may want
> to have a look at this as well.
> Please let me know if you need any more information in this regard.

Right, for me the crash had occurred with a similar stack, although
the real crash happened in one of the workers. Attached is the script
file
pgbench_partitioned.sql to create a schema with which I had reproduced
the crash.

The query that crashed :
select sum(aid), avg(aid) from pgbench_accounts;

Set max_parallel_workers_per_gather to at least 5.

Also attached is v19 patch rebased.

-- 
Thanks,
-Amit Khandekar
EnterpriseDB Corporation
The Postgres Database Company

Commits

  1. Update parallel.sgml for Parallel Append

  2. Support Parallel Append plan nodes.

  3. Remove BufFile's isTemp flag.

  4. Improve comments for parallel executor estimation functions.

  5. Separate reinitialization of shared parallel-scan state from ExecReScan.

  6. Eat XIDs more efficiently in recovery TAP test.

  7. Avoid syntax error on platforms that have neither LOCALE_T nor ICU.

  8. Preparatory refactoring for parallel merge join support.