|
728 | 728 | from the indexed item). As of <productname>PostgreSQL</productname> 8.4, |
729 | 729 | <acronym>GIN</> is capable of postponing much of this work by inserting |
730 | 730 | new tuples into a temporary, unsorted list of pending entries. |
731 | | - When the table is vacuumed, or if the pending list becomes too large |
732 | | - (larger than <xref linkend="guc-work-mem">), the entries are moved to the |
| 731 | + When the table is vacuumed, or if the pending list becomes larger than |
| 732 | + <xref linkend="guc-pending-list-cleanup-size">, the entries are moved to the |
733 | 733 | main <acronym>GIN</acronym> data structure using the same bulk insert |
734 | 734 | techniques used during initial index creation. This greatly improves |
735 | 735 | <acronym>GIN</acronym> index update speed, even counting the additional |
|
750 | 750 | <para> |
751 | 751 | If consistent response time is more important than update speed, |
752 |
A3E2
752 | use of pending entries can be disabled by turning off the |
753 | | - <literal>FASTUPDATE</literal> storage parameter for a |
| 753 | + <literal>fastupdate</literal> storage parameter for a |
754 | 754 | <acronym>GIN</acronym> index. See <xref linkend="sql-createindex"> |
755 | 755 | for details. |
756 | 756 | </para> |
|
812 | 812 | </varlistentry> |
813 | 813 |
|
814 | 814 | <varlistentry> |
815 | | - <term><xref linkend="guc-work-mem"></term> |
| 815 | + <term><xref linkend="guc-pending-list-cleanup-size"></term> |
816 | 816 | <listitem> |
817 | 817 | <para> |
818 | 818 | During a series of insertions into an existing <acronym>GIN</acronym> |
819 | | - index that has <literal>FASTUPDATE</> enabled, the system will clean up |
| 819 | + index that has <literal>fastupdate</> enabled, the system will clean up |
820 | 820 | the pending-entry list whenever the list grows larger than |
821 | | - <varname>work_mem</>. To avoid fluctuations in observed response time, |
822 | | - it's desirable to have pending-list cleanup occur in the background |
823 | | - (i.e., via autovacuum). Foreground cleanup operations can be avoided by |
824 | | - increasing <varname>work_mem</> or making autovacuum more aggressive. |
825 | | - However, enlarging <varname>work_mem</> means that if a foreground |
826 | | - cleanup does occur, it will take even longer. |
| 821 | + <varname>pending_list_cleanup_size</>. To avoid fluctuations in observed |
| 822 | + response time, it's desirable to have pending-list cleanup occur in the |
| 823 | + background (i.e., via autovacuum). Foreground cleanup operations |
| 824 | + can be avoided by increasing <varname>pending_list_cleanup_size</> |
| 825 | + or making autovacuum more aggressive. |
| 826 | + However, enlarging the threshold of the cleanup operation means that |
| 827 | + if a foreground cleanup does occur, it will take even longer. |
| 828 | + </para> |
| 829 | + <para> |
| 830 | + <varname>pending_list_cleanup_size</> can be overridden for individual |
| 831 | + GIN indexes by changing storage parameters, and which allows each |
| 832 | + GIN index to have its own cleanup threshold. |
| 833 | + For example, it's possible to increase the threshold only for the GIN |
| 834 | + index which can be updated heavily, and decrease it otherwise. |
827 | 835 | </para> |
828 | 836 | </listitem> |
829 | 837 | </varlistentry> |
|
0 commit comments