Re: Support for REINDEX CONCURRENTLY

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Andres Freund <andres(at)2ndquadrant(dot)com>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Peter Eisentraut <peter_e(at)gmx(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Re: Support for REINDEX CONCURRENTLY
Date: 2013-10-02 04:16:06
Message-ID: CAB7nPqTGox_5Njv9h8mLKXLeTOvtcsQvpK=PaPOQv3a1R0KnSg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Oct 2, 2013 at 6:06 AM, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
> I have pushed the first half of the first patch for now, revising it
> somewhat: I renamed the functions and put them in lmgr.c instead of
> procarray.c.
Great thanks.

> I think the second half of that first patch (WaitForOldSnapshots) should
> be in index.c, not procarray.c either. I didn't look at the actual code
> in there.
That's indexcmds.c in this case, not index.c.

> I already shipped Michael fixed versions of the remaining patches
> adjusting them to the changed API. I expect him to post them here.
And here they are attached, with the following changes:
- in 0002, WaitForOldSnapshots is renamed to WaitForOlderSnapshots.
This sounds better...
- in 0003, it looks that there was an error for the obtention of the
parent table Oid when calling index_concurrent_heap. I believe that
the lock that needs to be taken for RangeVarGetRelid is not NoLock but
ShareUpdateExclusiveLock. So changed it this way. I also added some
more comments at the top of each function for clarity.
- in 0004, patch is updated to reflect the API changes done in 0002 and 0003.

Each patch applied with its parents compiles, has no warnings AFAIK
and passes regression/isolation tests. Working on 0004 by the end of
the CF seems out of the way IMO, so I'd suggest focusing on 0002 and
0003 now, and I can put some time to finalize them for this CF. I
think that we should perhaps split 0003 into 2 pieces, with one patch
for the introduction of index_concurrent_build, and another for
index_concurrent_set_dead. Comments are welcome about that though, and
if people agree on that I'll do it once 0002 is finalized.

Regards,
--
Michael

Attachment Content-Type Size
20131002_0002_WaitForOlderSnapshots.patch application/octet-stream 6.6 KB
20131002_0003_reindex_refactoring.patch application/octet-stream 7.8 KB
20131002_0004_reindex_conc_core.patch application/octet-stream 64.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2013-10-02 08:03:14 Re: Documentation for SET var_name FROM CURRENT
Previous Message Peter Eisentraut 2013-10-02 02:29:07 Re: [PATCH] Add use of asprintf()