Re: Write Ahead Logging for Hash Indexes - Mailing list pgsql-hackers
From | Mark Kirkwood |
---|---|
Subject | Re: Write Ahead Logging for Hash Indexes |
Date | |
Msg-id | b581ce27-5df3-7f38-0191-9e23710da0f1@catalyst.net.nz Whole thread Raw |
In response to | Re: Write Ahead Logging for Hash Indexes (Amit Kapila <amit.kapila16@gmail.com>) |
Responses |
Re: Write Ahead Logging for Hash Indexes
(Amit Kapila <amit.kapila16@gmail.com>)
|
List | pgsql-hackers |
On 24/08/16 15:36, Amit Kapila wrote: > On Wed, Aug 24, 2016 at 8:54 AM, Mark Kirkwood > <mark.kirkwood@catalyst.net.nz> wrote: >> On 24/08/16 12:09, Mark Kirkwood wrote: >>> On 23/08/16 15:24, Amit Kapila wrote: >>>> >>>> Thoughts? >>>> >>>> Note - To use this patch, first apply latest version of concurrent >>>> hash index patch [2]. >>>> >>>> [1] - https://commitfest.postgresql.org/10/647/ >>>> [2] - >>>> https://www.postgresql.org/message-id/CAA4eK1LkQ_Udism-Z2Dq6cUvjH3dB5FNFNnEzZBPsRjw0haFqA@mail.gmail.com >>>> >>>> >>> Firstly - really nice! Patches applied easily etc to latest version 10 >>> checkout. >>> >>> I thought I'd test by initializing pgbench schema, adding a standby, then >>> adding some hash indexes and running pgbench: >>> >>> Looking on the standby: >>> >>> bench=# \d pgbench_accounts >>> Table "public.pgbench_accounts" >>> Column | Type | Modifiers >>> ----------+---------------+----------- >>> aid | integer | not null >>> bid | integer | >>> abalance | integer | >>> filler | character(84) | >>> Indexes: >>> "pgbench_accounts_pkey" PRIMARY KEY, btree (aid) >>> "pgbench_accounts_bid" hash (bid) <==== >>> >>> bench=# \d pgbench_history >>> Table "public.pgbench_history" >>> Column | Type | Modifiers >>> --------+-----------------------------+----------- >>> tid | integer | >>> bid | integer | >>> aid | integer | >>> delta | integer | >>> mtime | timestamp without time zone | >>> filler | character(22) | >>> Indexes: >>> "pgbench_history_bid" hash (bid) <===== >>> >>> >>> they have been replicated there ok. >>> >>> However I'm seeing a hang on the master after a while: >>> >>> bench=# SELECT datname,application_name,state,now()-xact_start AS >>> wait,query FROM pg_stat_activity ORDER BY wait DESC; >>> datname | application_name | state | wait | query >>> >>> ---------+------------------+--------+-----------------+---------------------------------------------------------------------------------------------------------------- >>> | walreceiver | idle | | >>> bench | pgbench | active | 00:31:38.367467 | INSERT INTO >>> pgbench_history (tid, bid, aid, delta, mtime) VALUES (921, 38, 251973, >>> -3868, CURRENT_TIMESTAMP); >>> bench | pgbench | active | 00:31:38.215378 | INSERT INTO >>> pgbench_history (tid, bid, aid, delta, mtime) VALUES (280, 95, 3954814, >>> 2091, CURRENT_TIMESTAMP); >>> bench | pgbench | active | 00:31:35.991056 | INSERT INTO >>> pgbench_history (tid, bid, aid, delta, mtime) VALUES (447, 33, 8355237, >>> 3438, CURRENT_TIMESTAMP); >>> bench | pgbench | active | 00:31:35.619798 | INSERT INTO >>> pgbench_history (tid, bid, aid, delta, mtime) VALUES (134, 16, 4839994, >>> -2443, CURRENT_TIMESTAMP); >>> bench | pgbench | active | 00:31:35.544196 | INSERT INTO >>> pgbench_history (tid, bid, aid, delta, mtime) VALUES (37, 73, 9620119, 4053, >>> CURRENT_TIMESTAMP); >>> bench | pgbench | active | 00:31:35.334504 | UPDATE >>> pgbench_branches SET bbalance = bbalance + -2954 WHERE bid = 33; >>> bench | pgbench | active | 00:31:35.234112 | UPDATE >>> pgbench_branches SET bbalance = bbalance + -713 WHERE bid = 38; >>> bench | pgbench | active | 00:31:34.434676 | UPDATE >>> pgbench_branches SET bbalance = bbalance + -921 WHERE bid = 33; >>> bench | psql | active | 00:00:00 | SELECT >>> datname,application_name,state,now()-xact_start AS wait,query FROM >>> pg_stat_activity ORDER BY wait DESC; >>> (10 rows) >>> >>> but no errors in the logs, any thoughts? > Can you get the call stacks? > For every stuck backend? (just double checking)...
pgsql-hackers by date: