On 20 January 2015 at 14:29, Amit Kapila <amit.kapil...@gmail.com> wrote:
> On Thu, Jan 15, 2015 at 6:57 PM, Amit Kapila <amit.kapil...@gmail.com> > wrote: > > On Mon, Jan 12, 2015 at 3:25 AM, Robert Haas <robertmh...@gmail.com> > wrote: > > > > > > Yeah, you need two separate global variables pointing to shm_mq > > > objects, one of which gets used by pqmq.c for errors and the other of > > > which gets used by printtup.c for tuples. > > > > > > > Okay, I will try to change the way as suggested without doing > > switching, but this way we need to do it separately for 'T', 'D', and > > 'C' messages. > > > > I have taken care of integrating the parallel sequence scan with the > latest patch posted (parallel-mode-v1.patch) by Robert at below > location: > > http://www.postgresql.org/message-id/ca+tgmozduk4k3xhbxc9vm-82khourezdvqwtfglhwsd2r2a...@mail.gmail.com > > Changes in this version > ----------------------------------------------- > 1. As mentioned previously, I have exposed one parameter > ParallelWorkerNumber as used in parallel-mode patch. > 2. Enabled tuple queue to be used for passing tuples from > worker backend to master backend along with error queue > as per suggestion by Robert in the mail above. > 3. Involved master backend to scan the heap directly when > tuples are not available in any shared memory tuple queue. > 4. Introduced 3 new parameters (cpu_tuple_comm_cost, > parallel_setup_cost, parallel_startup_cost) for deciding the cost > of parallel plan. Currently, I have kept the default values for > parallel_setup_cost and parallel_startup_cost as 0.0, as those > require some experiments. > 5. Fixed some issues (related to memory increase as reported > upthread by Thom Brown and general feature issues found during > test) > > Note - I have yet to handle the new node types introduced at some > of the places and need to verify prepared queries and some other > things, however I think it will be good if I can get some feedback > at current stage. > Which commit is this based against? I'm getting errors with the latest master: thom@swift:~/Development/postgresql$ patch -p1 < ~/Downloads/parallel_seqscan_v4.patch patching file src/backend/access/Makefile patching file src/backend/access/common/printtup.c patching file src/backend/access/shmmq/Makefile patching file src/backend/access/shmmq/shmmqam.c patching file src/backend/commands/explain.c Hunk #1 succeeded at 721 (offset 8 lines). Hunk #2 succeeded at 918 (offset 8 lines). Hunk #3 succeeded at 1070 (offset 8 lines). Hunk #4 succeeded at 1337 (offset 8 lines). Hunk #5 succeeded at 2239 (offset 83 lines). patching file src/backend/executor/Makefile patching file src/backend/executor/execProcnode.c patching file src/backend/executor/execScan.c patching file src/backend/executor/execTuples.c patching file src/backend/executor/nodeParallelSeqscan.c patching file src/backend/executor/nodeSeqscan.c patching file src/backend/libpq/pqmq.c Hunk #1 succeeded at 23 with fuzz 2 (offset -3 lines). Hunk #2 FAILED at 63. Hunk #3 succeeded at 132 (offset -31 lines). 1 out of 3 hunks FAILED -- saving rejects to file src/backend/libpq/pqmq.c.rej patching file src/backend/optimizer/path/Makefile patching file src/backend/optimizer/path/allpaths.c patching file src/backend/optimizer/path/costsize.c patching file src/backend/optimizer/path/parallelpath.c patching file src/backend/optimizer/plan/createplan.c patching file src/backend/optimizer/plan/planner.c patching file src/backend/optimizer/plan/setrefs.c patching file src/backend/optimizer/util/pathnode.c patching file src/backend/postmaster/Makefile patching file src/backend/postmaster/backendworker.c patching file src/backend/postmaster/postmaster.c patching file src/backend/tcop/dest.c patching file src/backend/tcop/postgres.c Hunk #1 succeeded at 54 (offset -1 lines). Hunk #2 succeeded at 1132 (offset -1 lines). patching file src/backend/utils/misc/guc.c patching file src/backend/utils/misc/postgresql.conf.sample can't find file to patch at input line 2105 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff --git a/src/include/access/parallel.h b/src/include/access/parallel.h |index 761ba1f..00ad468 100644 |--- a/src/include/access/parallel.h |+++ b/src/include/access/parallel.h -------------------------- File to patch: -- Thom