postgres.git / summary / log / commit / refs

commit    c9c95202b036ea75dec68a4afc1802f35b77a966
Author:   Bruce Momjian <bruce@momjian.us>
Date:     Sat Aug 04 14:35:37 2012 +0000
First released in: 9.3.0, 9.1.5, 9.2.0

    Reword documentation for concurrent index rebuilds to be clearer.
    
    Backpatch to 9.1 and 9.2.


doc/src/sgml/ref/create_index.sgml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml index 1a1e8d60d75..5d0ea4372fc 100644 --- a/doc/src/sgml/ref/create_index.sgml +++ b/doc/src/sgml/ref/create_index.sgml @@ -379,15 +379,14 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ <replaceable class="parameter">name</ </para> <para> - In a concurrent index build, the index is actually entered into the - system catalogs in one transaction, then the two table scans occur in a - second and third transaction. All active transactions at the time the - second table scan starts, not just ones that already involve the table, - have the potential to block the concurrent index creation until they - finish. When checking for transactions that could still use the original - index, concurrent index creation advances through potentially interfering - older transactions one at a time, obtaining shared locks on their virtual - transaction identifiers to wait for them to complete. + In a concurrent index build, the index is actually entered into + the system catalogs in one transaction, then two table scans occur in + two more transactions. Any transaction active when the second table + scan starts can block concurrent index creation until it completes, + even transactions that only reference the table after the second table + scan starts. Concurrent index creation serially waits for each old + transaction to complete using the method outlined in section <xref + linkend="view-pg-locks">. </para> <para> [parent: 805fc21c33f3]