Re: Parallel Seq Scan

Поиск
Список
Период
Сортировка
От Thom Brown
Тема Re: Parallel Seq Scan
Дата
Msg-id CAA-aLv7oJjhvYxH2FLeFkZ+1ScdYvOgfN0Pb1uwSjLiZNxduRg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Parallel Seq Scan  (Thom Brown <thom@linux.com>)
Ответы Re: Parallel Seq Scan  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
On 25 March 2015 at 11:46, Thom Brown <thom@linux.com> wrote:

Still not sure why 8 workers are needed for each partial scan.  I would expect 8 workers to be used for 8 separate scans.  Perhaps this is just my misunderstanding of how this feature works.

Another issue:

SELECT * FROM pgb<tab>

*crash*

Logs:

2015-03-25 13:17:49 GMT [22823]: [124-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [125-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [126-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [127-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [128-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [129-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [130-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [131-1] user=,db=,client= LOG:  registering background worker "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [132-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [133-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [134-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [135-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [136-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [137-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [138-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [139-1] user=,db=,client= LOG:  starting background worker process "parallel worker for PID 24792"
2015-03-25 13:17:49 GMT [22823]: [140-1] user=,db=,client= LOG:  worker process: parallel worker for PID 24792 (PID 24804) was terminated by signal 11: Segmentation fault
2015-03-25 13:17:49 GMT [22823]: [141-1] user=,db=,client= LOG:  terminating any other active server processes
2015-03-25 13:17:49 GMT [24777]: [2-1] user=,db=,client= WARNING:  terminating connection because of crash of another server process
2015-03-25 13:17:49 GMT [24777]: [3-1] user=,db=,client= DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2015-03-25 13:17:49 GMT [24777]: [4-1] user=,db=,client= HINT:  In a moment you should be able to reconnect to the database and repeat your command.

Backtrace:

#0  GrantLockLocal (locallock=locallock@entry=0xfbe7f0, owner=owner@entry=0x1046da0) at lock.c:1544
#1  0x000000000066975c in LockAcquireExtended (locktag=locktag@entry=0x7fffdcb0ea20, lockmode=1,
    lockmode@entry=<error reading variable: Cannot access memory at address 0x7fffdcb0e9f0>, sessionLock=sessionLock@entry=0 '\000', dontWait=dontWait@entry=0 '\000',
    reportMemoryError=reportMemoryError@entry=1 '\001', ) at lock.c:798
#2  0x000000000066a1c4 in LockAcquire (locktag=locktag@entry=0x7fffdcb0ea20, lockmode=<error reading variable: Cannot access memory at address 0x7fffdcb0e9f0>,
    sessionLock=sessionLock@entry=0 '\000', dontWait=dontWait@entry=0 '\000') at lock.c:680
#3  0x0000000000667c48 in LockRelationOid (relid=<error reading variable: Cannot access memory at address 0x7fffdcb0e9e8>,
    relid@entry=<error reading variable: Cannot access memory at address 0x7fffdcb0ea48>,
    lockmode=<error reading variable: Cannot access memory at address 0x7fffdcb0e9f0>,
    lockmode@entry=<error reading variable: Cannot access memory at address 0x7fffdcb0ea48>) at lmgr.c:94

But the issue seems to produce a different backtrace each time...

2nd backtrace:

#0  hash_search_with_hash_value (hashp=0x2a2c370, keyPtr=keyPtr@entry=0x7ffff5ad2230, hashvalue=hashvalue@entry=2114233864, action=action@entry=HASH_FIND,
    foundPtr=foundPtr@entry=0x0) at dynahash.c:918
#1  0x0000000000654d1a in BufTableLookup (tagPtr=tagPtr@entry=0x7ffff5ad2230, hashcode=hashcode@entry=2114233864) at buf_table.c:96
#2  0x000000000065746b in BufferAlloc (foundPtr=0x7ffff5ad222f <Address 0x7ffff5ad222f out of bounds>, strategy=0x0,
    blockNum=<error reading variable: Cannot access memory at address 0x7ffff5ad2204>,
    forkNum=<error reading variable: Cannot access memory at address 0x7ffff5ad2208>,
    relpersistence=<error reading variable: Cannot access memory at address 0x7ffff5ad2214>, smgr=0x2aaae00) at bufmgr.c:893
#3  ReadBuffer_common (smgr=0x2aaae00, relpersistence=<optimized out>, ) at bufmgr.c:641
#4  0x0000000000657e40 in ReadBufferExtended (reln=<error reading variable: Cannot access memory at address 0x7ffff5ad2278>,
    reln@entry=<error reading variable: Cannot access memory at address 0x7ffff5ad22f8>, forkNum=MAIN_FORKNUM, blockNum=6, mode=<optimized out>,
    strategy=<optimized out>) at bufmgr.c:560


3rd backtrace:

#0  hash_search_with_hash_value (hashp=0x1d97370, keyPtr=keyPtr@entry=0x7ffff95855f0, hashvalue=hashvalue@entry=2382868486, action=action@entry=HASH_FIND,
    foundPtr=foundPtr@entry=0x0) at dynahash.c:907
#1  0x0000000000654d1a in BufTableLookup (tagPtr=tagPtr@entry=0x7ffff95855f0, hashcode=hashcode@entry=2382868486) at buf_table.c:96
#2  0x000000000065746b in BufferAlloc (foundPtr=0x7ffff95855ef "", strategy=0x0, blockNum=9, forkNum=MAIN_FORKNUM, relpersistence=112 'p', smgr=0x1e15860)
    at bufmgr.c:893
#3  ReadBuffer_common (smgr=0x1e15860, relpersistence=<optimized out>, forkNum=forkNum@entry=MAIN_FORKNUM, blockNum=blockNum@entry=9, mode=RBM_NORMAL, strategy=0x0,
    hit=hit@entry=0x7ffff958569f "") at bufmgr.c:641
#4  0x0000000000657e40 in ReadBufferExtended (reln=reln@entry=0x7f8a17bab2c0, forkNum=forkNum@entry=MAIN_FORKNUM, blockNum=9, mode=mode@entry=RBM_NORMAL,
    strategy=strategy@entry=0x0) at bufmgr.c:560
#5  0x0000000000657f4d in ReadBuffer (blockNum=<optimized out>, reln=0x7f8a17bab2c0) at bufmgr.c:492
#6  ReleaseAndReadBuffer (buffer=buffer@entry=398111424, relation=relation@entry=0x1, blockNum=<optimized out>) at bufmgr.c:1403
#7  0x000000000049e6bf in _bt_relandgetbuf (rel=0x1, rel@entry=0x7f8a17bab2c0, obuf=398111424, blkno=blkno@entry=9, access=access@entry=1) at nbtpage.c:707
#8  0x00000000004a24b4 in _bt_search (rel=rel@entry=0x7f8a17bab2c0, keysz=keysz@entry=2, scankey=scankey@entry=0x7ffff95858b0, nextkey=nextkey@entry=0 '\000',
    bufP=bufP@entry=0x7ffff95857ac, access=access@entry=1) at nbtsearch.c:131
#9  0x00000000004a2cb4 in _bt_first (scan=scan@entry=0x1eb2048, dir=dir@entry=ForwardScanDirection) at nbtsearch.c:940
#10 0x00000000004a1141 in btgettuple (fcinfo=<optimized out>) at nbtree.c:288
#11 0x0000000000759132 in FunctionCall2Coll (flinfo=flinfo@entry=0x1e34390, collation=collation@entry=0, arg1=arg1@entry=32186440, arg2=arg2@entry=1) at fmgr.c:1323
#12 0x000000000049b273 in index_getnext_tid (scan=scan@entry=0x1eb2048, direction=direction@entry=ForwardScanDirection) at indexam.c:462
#13 0x000000000049b450 in index_getnext (scan=0x1eb2048, direction=direction@entry=ForwardScanDirection) at indexam.c:602
#14 0x000000000049a9a9 in systable_getnext (sysscan=sysscan@entry=0x1eb1ff8) at genam.c:416
#15 0x0000000000740452 in SearchCatCache (cache=0x1ddf540, v1=<optimized out>, v2=<optimized out>, v3=<optimized out>, v4=<optimized out>) at catcache.c:1248
#16 0x000000000074bd06 in GetSysCacheOid (cacheId=cacheId@entry=44, key1=key1@entry=140226851237264, key2=<optimized out>, key3=key3@entry=0, key4=key4@entry=0)
    at syscache.c:988
#17 0x000000000074d674 in get_relname_relid (relname=relname@entry=0x7f891ba7ed90 "pgbench_accounts_3", relnamespace=<optimized out>) at lsyscache.c:1602
#18 0x00000000004e1228 in RelationIsVisible (relid=relid@entry=16428) at namespace.c:740
#19 0x00000000004e4b6f in pg_table_is_visible (fcinfo=0x1e9dfc8) at namespace.c:4078
#20 0x0000000000595f72 in ExecMakeFunctionResultNoSets (fcache=0x1e9df58, econtext=0x1e99848, isNull=0x7ffff95871bf "", isDone=<optimized out>) at execQual.c:2015
#21 0x000000000059b469 in ExecQual (qual=qual@entry=0x1e9b368, econtext=econtext@entry=0x1e99848, resultForNull=resultForNull@entry=0 '\000') at execQual.c:5206
#22 0x000000000059b9a6 in ExecScan (node=node@entry=0x1e99738, accessMtd=accessMtd@entry=0x5ad780 <PartialSeqNext>,
    recheckMtd=recheckMtd@entry=0x5ad770 <PartialSeqRecheck>) at execScan.c:195
#23 0x00000000005ad8d0 in ExecPartialSeqScan (node=node@entry=0x1e99738) at nodePartialSeqscan.c:241
#24 0x0000000000594f68 in ExecProcNode (node=0x1e99738) at execProcnode.c:422
#25 0x00000000005a39b6 in funnel_getnext (funnelstate=0x1e943c8) at nodeFunnel.c:308
#26 ExecFunnel (node=node@entry=0x1e943c8) at nodeFunnel.c:185
#27 0x0000000000594f58 in ExecProcNode (node=0x1e943c8) at execProcnode.c:426
#28 0x00000000005a0212 in ExecAppend (node=node@entry=0x1e941d8) at nodeAppend.c:209
#29 0x0000000000594fa8 in ExecProcNode (node=node@entry=0x1e941d8) at execProcnode.c:399
#30 0x00000000005a0c9e in agg_fill_hash_table (aggstate=0x1e93ba8) at nodeAgg.c:1353
#31 ExecAgg (node=node@entry=0x1e93ba8) at nodeAgg.c:1115
#32 0x0000000000594e38 in ExecProcNode (node=node@entry=0x1e93ba8) at execProcnode.c:506
#33 0x00000000005a8144 in ExecLimit (node=node@entry=0x1e93908) at nodeLimit.c:91
#34 0x0000000000594d98 in ExecProcNode (node=node@entry=0x1e93908) at execProcnode.c:530
#35 0x0000000000592380 in ExecutePlan (dest=0x7f891bbc9f10, direction=<optimized out>, numberTuples=0, sendTuples=1 '\001', operation=CMD_SELECT, planstate=0x1e93908,
#36 standard_ExecutorRun (queryDesc=0x1dbb800, direction=<optimized out>, count=0) at execMain.c:342
#37 0x000000000067e9a8 in PortalRunSelect (portal=0x1e639e0, portal@entry=<error reading variable: Cannot access memory at address 0x7ffff95874c8>,
    forward=<optimized out>, count=0, dest=<optimized out>) at pquery.c:947


4th backtrace:

#0  ScanKeywordLookup (text=text@entry=0x1d57fa0 "information_schema_catalog_name", keywords=0x84f220 <ScanKeywords>, num_keywords=408) at kwlookup.c:64
#1  0x000000000070aa14 in quote_identifier (ident=0x1d57fa0 "information_schema_catalog_name") at ruleutils.c:9009
#2  0x00000000006f54bd in quote_ident (fcinfo=<optimized out>) at quote.c:31
#3  0x0000000000595f72 in ExecMakeFunctionResultNoSets (fcache=0x1d42cb8, econtext=0x1d3f848, isNull=0x1d42858 "", isDone=<optimized out>) at execQual.c:2015
#4  0x0000000000595f1d in ExecMakeFunctionResultNoSets (fcache=0x1d424a8, econtext=0x1d3f848, isNull=0x1d42048 "", isDone=<optimized out>) at execQual.c:1989
#5  0x0000000000595f1d in ExecMakeFunctionResultNoSets (fcache=0x1d41c98, econtext=0x1d3f848, isNull=0x7fff0bdc61df "", isDone=<optimized out>) at execQual.c:1989
#6  0x000000000059b469 in ExecQual (qual=qual@entry=0x1d41368, econtext=econtext@entry=0x1d3f848, resultForNull=resultForNull@entry=0 '\000') at execQual.c:5206
#7  0x000000000059b9a6 in ExecScan (node=node@entry=0x1d3f738, accessMtd=accessMtd@entry=0x5ad780 <PartialSeqNext>,
    recheckMtd=recheckMtd@entry=0x5ad770 <PartialSeqRecheck>) at execScan.c:195
#8  0x00000000005ad8d0 in ExecPartialSeqScan (node=node@entry=0x1d3f738) at nodePartialSeqscan.c:241
#9  0x0000000000594f68 in ExecProcNode (node=0x1d3f738) at execProcnode.c:422
#10 0x00000000005a39b6 in funnel_getnext (funnelstate=0x1d3a3c8) at nodeFunnel.c:308
#11 ExecFunnel (node=node@entry=0x1d3a3c8) at nodeFunnel.c:185
#12 0x0000000000594f58 in ExecProcNode (node=0x1d3a3c8) at execProcnode.c:426
#13 0x00000000005a0212 in ExecAppend (node=node@entry=0x1d3a1d8) at nodeAppend.c:209
#14 0x0000000000594fa8 in ExecProcNode (node=node@entry=0x1d3a1d8) at execProcnode.c:399
#15 0x00000000005a0c9e in agg_fill_hash_table (aggstate=0x1d39ba8) at nodeAgg.c:1353
#16 ExecAgg (node=node@entry=0x1d39ba8) at nodeAgg.c:1115
#17 0x0000000000594e38 in ExecProcNode (node=node@entry=0x1d39ba8) at execProcnode.c:506
#18 0x00000000005a8144 in ExecLimit (node=node@entry=0x1d39908) at nodeLimit.c:91
#19 0x0000000000594d98 in ExecProcNode (node=node@entry=0x1d39908) at execProcnode.c:530
#20 0x0000000000592380 in ExecutePlan (dest=0x7fe8c8a1cf10, direction=<optimized out>, numberTuples=0, sendTuples=1 '\001', operation=CMD_SELECT, planstate=0x1d39908,
    estate=0x1d01990) at execMain.c:1533
#21 standard_ExecutorRun (queryDesc=0x1c61800, direction=<optimized out>, count=0) at execMain.c:342
#22 0x000000000067e9a8 in PortalRunSelect (portal=portal@entry=0x1d099e0, forward=forward@entry=1 '\001', count=0, count@entry=9223372036854775807,
    dest=dest@entry=0x7fe8c8a1cf10) at pquery.c:947
#23 0x000000000067fd0f in PortalRun (portal=portal@entry=0x1d099e0, count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=1 '\001',
    dest=dest@entry=0x7fe8c8a1cf10, altdest=altdest@entry=0x7fe8c8a1cf10, completionTag=completionTag@entry=0x7fff0bdc6790 "") at pquery.c:791
#24 0x000000000067dab8 in exec_simple_query (
    query_string=0x1caf750 "SELECT pg_catalog.quote_ident(c.relname) FROM pg_catalog.pg_class c WHERE c.relkind IN ('r', 'S', 'v', 'm', 'f') AND substring(pg_catalog.quote_ident(c.relname),1,3)='pgb' AND pg_catalog.pg_table_is_v"...) at postgres.c:1107
#25 PostgresMain (argc=<optimized out>, argv=argv@entry=0x1c3db60, dbname=0x1c3da18 "pgbench", username=<optimized out>) at postgres.c:4120
#26 0x0000000000462c8e in BackendRun (port=0x1c621f0) at postmaster.c:4148
#27 BackendStartup (port=0x1c621f0) at postmaster.c:3833
#28 ServerLoop () at postmaster.c:1601
#29 0x000000000062e803 in PostmasterMain (argc=argc@entry=1, argv=argv@entry=0x1c3cca0) at postmaster.c:1248
#30 0x00000000004636dd in main (argc=1, argv=0x1c3cca0) at main.c:221


5th backtrace:

#0  0x000000000075d757 in hash_search_with_hash_value (hashp=0x1d62310, keyPtr=keyPtr@entry=0x7fffb686f4a0, hashvalue=hashvalue@entry=171639189,
    action=action@entry=HASH_ENTER, foundPtr=foundPtr@entry=0x7fffb686f44f <Address 0x7fffb686f44f out of bounds>) at dynahash.c:1026
#1  0x0000000000654d52 in BufTableInsert (tagPtr=tagPtr@entry=0x7fffb686f4a0, hashcode=hashcode@entry=171639189, buf_id=169) at buf_table.c:128
#2  0x0000000000657711 in BufferAlloc (foundPtr=0x7fffb686f49f <Address 0x7fffb686f49f out of bounds>, strategy=0x0, blockNum=11, forkNum=MAIN_FORKNUM,
    relpersistence=<error reading variable: Cannot access memory at address 0x7fffb686f484>,
    smgr=<error reading variable: Cannot access memory at address 0x7fffb686f488>) at bufmgr.c:1089
#3  ReadBuffer_common (smgr=<error reading variable: Cannot access memory at address 0x7fffb686f488>, relpersistence=<optimized out>, forkNum=MAIN_FORKNUM,
    forkNum@entry=<error reading variable: Cannot access memory at address 0x7fffb686f4f0>, blockNum=11,
    blockNum@entry=<error reading variable: Cannot access memory at address 0x7fffb686f4f8>, mode=RBM_NORMAL, strategy=0x0,
    hit=hit@entry=0x7fffb686f54f <Address 0x7fffb686f54f out of bounds>) at bufmgr.c:641
#4  0x0000000000657e40 in ReadBufferExtended (reln=<error reading variable: Cannot access memory at address 0x7fffb686f4e8>,
    reln@entry=<error reading variable: Cannot access memory at address 0x7fffb686f568>,
    forkNum=<error reading variable: Cannot access memory at address 0x7fffb686f4f0>,
    blockNum=<error reading variable: Cannot access memory at address 0x7fffb686f4f8>, mode=<optimized out>, strategy=<optimized out>) at bufmgr.c:560
--
Thom

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Abbreviated keys for Numeric
Следующее
От: Amit Langote
Дата:
Сообщение: Re: Error with index on unlogged table