Re: [HACKERS] REINDEX CONCURRENTLY 2.0

Поиск
Список
Период
Сортировка
Искать
От
Andreas Karlsson
Тема
Re: [HACKERS] REINDEX CONCURRENTLY 2.0
Дата
Msg-id
a8e56251-bd3c-521e-7a2c-35d66b5f7f29@proxel.se
Ответ на
REINDEX CONCURRENTLY 2.0 (Michael Paquier)
Список
Дерево обсуждения
REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter_e@gmx.net>
Re: REINDEX CONCURRENTLY 2.0 Jim Nasby <jim@nasby.net>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: REINDEX CONCURRENTLY 2.0 Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Jeff Janes <jeff.janes@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter_e@gmx.net>
Re: REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter_e@gmx.net>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Oskari Saarenmaa <os@ohmu.fi>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Bruce Momjian <bruce@momjian.us>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Bruce Momjian <bruce@momjian.us>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Jim Nasby <jim.nasby@openscg.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Thomas Munro <thomas.munro@enterprisedb.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Thomas Munro <thomas.munro@enterprisedb.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Geoghegan <pg@bowt.ie>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: REINDEX CONCURRENTLY 2.0 Michael Banck <michael.banck@credativ.de>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Stephen Frost <sfrost@snowman.net>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Stephen Frost <sfrost@snowman.net>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Stephen Frost <sfrost@snowman.net>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Stephen Frost <sfrost@snowman.net>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Stephen Frost <sfrost@snowman.net>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andrew Gierth <andrew@tao11.riddles.org.uk>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Vik Fearing <vik.fearing@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Vik Fearing <vik.fearing@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Pavel Stehule <pavel.stehule@gmail.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Stephen Frost <sfrost@snowman.net>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Banck <michael.banck@credativ.de>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Sergei Kornilov <sk@zsrv.org>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
RE: REINDEX CONCURRENTLY 2.0 "Shinoda, Noriyoshi (PN Japan A&PS Delivery)"<noriyoshi.shinoda@hpe.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Robert Treat <rob@xzilla.net>
Re: REINDEX CONCURRENTLY 2.0 Andres Freund <andres@anarazel.de>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 "Bossart, Nathan" <bossartn@amazon.com>
Re: REINDEX CONCURRENTLY 2.0 Justin Pryzby <pryzby@telsasoft.com>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 ilmari@ilmari.org (Dagfinn Ilmari Mannsåker)
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 ilmari@ilmari.org (Dagfinn Ilmari Mannsåker)
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: REINDEX CONCURRENTLY 2.0 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Re: REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Andreas Karlsson <andreas@proxel.se>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Michael Paquier <michael@paquier.xyz>
Re: [HACKERS] REINDEX CONCURRENTLY 2.0 Pavel Stehule <pavel.stehule@gmail.com>
Hi,

Here is a third take on this feature, heavily based on Michael Paquier's 
2.0 patch. This time the patch does not attempt to preserve the index 
oids, but instead creates new indexes and moves all dependencies from 
the old indexes to the new before dropping the old ones. The only 
downside I can see to this approach is that we no logner will able to 
reindex catalog tables concurrently, but in return it should be easier 
to confirm that this approach can be made work.

This patch relies on that we can change the indisvalid flag of indexes 
transactionally, and as far as I can tell this is the case now that we 
have MVCC for the catalog updates.

The code does some extra intermediate commits when building the indexes 
to avoid long running transactions.

How REINDEX CONCURRENTLY operates:

For each table:

1. Create new indexes without populating them, and lock the tables and 
indexes for the session.

2. After waiting for all running transactions populate each index in a 
separate transaction and set them to ready.

3. After waiting again for all running transactions validate each index 
in a separate transaction (but not setting them to valid just yet).

4. Swap all dependencies over from each old index to the new index and 
rename the old and the new indexes (from the  to _ccold and 
_new to ), and set isprimary and isexclusion flags. Here we 
also mark the new indexes as valid and the old indexes as invalid.

5. After waiting for all running transactions we change each index from 
invalid to dead.

6. After waiting for all running transactions we drop each index.

7. Drop all session locks.

Andreas

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
В списке pgsql-hackers по дате отправления
От: Tomas Vondra
Дата:
От: Andres Freund
Дата:
FAQ