Re: Re: [COMMITTERS] pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <
От | Kevin Grittner |
---|---|
Тема | Re: Re: [COMMITTERS] pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < |
Дата | |
Msg-id | CACjxUsOTuSqU7byK6p_ZBBhMMenm5wzknD-EJEx2Sd9MePAfrQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Re: [COMMITTERS] pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: [COMMITTERS] pgsql: Avoid extra locks in GetSnapshotData if
old_snapshot_threshold <
|
Список | pgsql-hackers |
On Thu, Jun 16, 2016 at 1:32 PM, Andres Freund <andres@anarazel.de> wrote: > With old_snapshot_threshold=1 I indeed can reproduce the issue. I > disabled autovacuum, to make the scheduling more predictable. But it > should "work" just as well with autovacuum. > > S1: CREATE TABLE toasted(largecol text); > INSERT INTO toasted SELECT string_agg(random()::text, '-') FROM generate_series(1, 10000000); > BEGIN; > DELETE FROM toasted; > S2: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; > S2: SELECT hashtext(largecol), length(largecol) FROM toasted; >> ... > S1: COMMIT; > S2: SELECT hashtext(largecol), length(largecol) FROM toasted; >> ... > S1: /* wait for snapshot threshold to be passed */ > S1: VACUUM pg_toast.pg_toast_16437; >> INFO: 00000: "pg_toast_16437": found 61942 removable, 0 nonremovable row versions in 15486 out of 15486 pages >> DETAIL: 0 dead row versions cannot be removed yet. > S2: SELECT hashtext(largecol), length(largecol) FROM toasted; > ERROR: XX000: missing chunk number 0 for toast value 16455 in pg_toast_16437 > LOCATION: toast_fetch_datum, tuptoaster.c:1945 Thanks! That's something I should be able to work with. Unfortunately, I am going to be on vacation, so I won't have any results until sometime after 28 June. -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: