Re: Microvacuum support for Hash Index
Jesper Pedersen <jesper.pedersen@redhat.com>
From: Jesper Pedersen <jesper.pedersen@redhat.com>
To: Ashutosh Sharma <ashu.coek88@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-01-19T13:43:56Z
Lists: pgsql-hackers
Hi Ashutosh, On 01/10/2017 08:40 AM, Jesper Pedersen wrote: > On 01/10/2017 05:24 AM, Ashutosh Sharma wrote: >> Thanks for reporting this problem. It is basically coming because i >> forgot to unpin the bucketbuf in hash_xlog_vacuum_one_page(). Please >> find the attached v5 patch that fixes the issue. >> > > The crash is now fixed, but the > > --- test.sql --- > \set id random(1,10) > \set val random(0,10) > BEGIN; > UPDATE test SET val = :val WHERE id = :id; > COMMIT; > --- test.sql --- > > case gives > > client 6 aborted in command 3 of script 0; ERROR: deadlock detected > DETAIL: Process 14608 waits for ShareLock on transaction 1444620; > blocked by process 14610. > Process 14610 waits for ShareLock on transaction 1444616; blocked by > process 14608. > HINT: See server log for query details. > CONTEXT: while rechecking updated tuple (12,3) in relation "test" > ... > > using pgbench -M prepared -c 10 -j 10 -T 300 -f test.sql test > I'm not seeing this deadlock with just the WAL v8 patch applied. Best regards, Jesper
Commits
-
Fixes for single-page hash index vacuum.
- 953477ca3526 10.0 landed
-
Port single-page btree vacuum logic to hash indexes.
- 6977b8b7f4df 10.0 landed
-
Avoid core dump for empty prepared statement in an aborted transaction.
- ba61a04bc7fe 10.0 cited
-
Change representation of statement lists, and add statement location info.
- ab1f0c822571 10.0 cited