Reword documentation for concurrent index rebuilds to be clearer.

Backpatch to 9.1 and 9.2.
This commit is contained in:
Bruce Momjian 2012-08-04 10:35:37 -04:00
parent 3152bf722f
commit 4639432597
1 changed files with 8 additions and 9 deletions

View File

@ -394,15 +394,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>