Concurrently option for reindexdb

From: Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Concurrently option for reindexdb
Date: 2014-08-25 06:36:25
Message-ID: CAD21AoCYBuR5EawbU8ifgZ6Hrt-+L9U=NzOx5icoRhQj6=BFeg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi all,

Attached WIP patch adds "-C (--concurrently)" option for reindexdb
command for concurrently reindexing.
If we specify "-C" option with any table then reindexdb do reindexing
concurrently with minimum lock necessary.
Note that we cannot use '-s' option (for system catalog) and '-C'
option at the same time.
This patch use simple method as follows.

1. Do "CREATE INDEX CONCURRENTLY" new index which has same definition
as target index
2. Aquire ACCESS EXCLUSIVE LOCK to target table( and transaction starts)
3. Swap old and new index
4. Drop old index
5. COMMIT

These process are based on pg_repack(or pg_reorg) does, done via SQL.

ToDo
- Multi language support for log message.

Regards,

-------
Sawada Masahiko

Attachment Content-Type Size
reindexdb-concurrently_v1.patch application/octet-stream 21.9 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2014-08-25 06:48:26 Re: Concurrently option for reindexdb
Previous Message Andrew Gierth 2014-08-25 05:35:02 Re: WIP Patch for GROUPING SETS phase 1