mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Reword documentation for concurrent index rebuilds to be clearer.
Backpatch to 9.1 and 9.2.
This commit is contained in:
parent
3152bf722f
commit
4639432597
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user