Commit c291503b authored by Fujii Masao's avatar Fujii Masao

Rename pending_list_cleanup_size to gin_pending_list_limit.

Since this parameter is only for GIN index, it's better to
add "gin" to the parameter name for easier understanding.
parent 67770803
......@@ -5911,10 +5911,10 @@ SET XML OPTION { DOCUMENT | CONTENT };
</listitem>
</varlistentry>
<varlistentry id="guc-pending-list-cleanup-size" xreflabel="pending_list_cleanup_size">
<term><varname>pending_list_cleanup_size</varname> (<type>integer</type>)
<varlistentry id="guc-gin-pending-list-limit" xreflabel="gin_pending_list_limit">
<term><varname>gin_pending_list_limit</varname> (<type>integer</type>)
<indexterm>
<primary><varname>pending_list_cleanup_size</> configuration parameter</primary>
<primary><varname>gin_pending_list_limit</> configuration parameter</primary>
</indexterm>
</term>
<listitem>
......
......@@ -729,7 +729,7 @@
<acronym>GIN</> is capable of postponing much of this work by inserting
new tuples into a temporary, unsorted list of pending entries.
When the table is vacuumed, or if the pending list becomes larger than
<xref linkend="guc-pending-list-cleanup-size">, the entries are moved to the
<xref linkend="guc-gin-pending-list-limit">, the entries are moved to the
main <acronym>GIN</acronym> data structure using the same bulk insert
techniques used during initial index creation. This greatly improves
<acronym>GIN</acronym> index update speed, even counting the additional
......@@ -812,22 +812,22 @@
</varlistentry>
<varlistentry>
<term><xref linkend="guc-pending-list-cleanup-size"></term>
<term><xref linkend="guc-gin-pending-list-limit"></term>
<listitem>
<para>
During a series of insertions into an existing <acronym>GIN</acronym>
index that has <literal>fastupdate</> enabled, the system will clean up
the pending-entry list whenever the list grows larger than
<varname>pending_list_cleanup_size</>. To avoid fluctuations in observed
<varname>gin_pending_list_limit</>. To avoid fluctuations in observed
response time, it's desirable to have pending-list cleanup occur in the
background (i.e., via autovacuum). Foreground cleanup operations
can be avoided by increasing <varname>pending_list_cleanup_size</>
can be avoided by increasing <varname>gin_pending_list_limit</>
or making autovacuum more aggressive.
However, enlarging the threshold of the cleanup operation means that
if a foreground cleanup does occur, it will take even longer.
</para>
<para>
<varname>pending_list_cleanup_size</> can be overridden for individual
<varname>gin_pending_list_limit</> can be overridden for individual
GIN indexes by changing storage parameters, and which allows each
GIN index to have its own cleanup threshold.
For example, it's possible to increase the threshold only for the GIN
......
......@@ -371,10 +371,10 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] <replaceable class=
</variablelist>
<variablelist>
<varlistentry>
<term><literal>pending_list_cleanup_size</></term>
<term><literal>gin_pending_list_limit</></term>
<listitem>
<para>
Custom <xref linkend="guc-pending-list-cleanup-size"> parameter.
Custom <xref linkend="guc-gin-pending-list-limit"> parameter.
This value is specified in kilobytes.
</para>
</listitem>
......
......@@ -218,7 +218,7 @@ static relopt_int intRelOpts[] =
},
{
{
"pending_list_cleanup_size",
"gin_pending_list_limit",
"Maximum size of the pending list for this GIN index, in kilobytes.",
RELOPT_KIND_GIN
},
......
......@@ -26,7 +26,7 @@
#include "utils/rel.h"
/* GUC parameter */
int pending_list_cleanup_size = 0;
int gin_pending_list_limit = 0;
#define GIN_PAGE_FREESIZE \
( BLCKSZ - MAXALIGN(SizeOfPageHeaderData) - MAXALIGN(sizeof(GinPageOpaqueData)) )
......@@ -426,7 +426,7 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
* call it when it can do all the work in a single collection cycle. In
* non-vacuum mode, it shouldn't require maintenance_work_mem, so fire it
* while pending list is still small enough to fit into
* pending_list_cleanup_size.
* gin_pending_list_limit.
*
* ginInsertCleanup() should not be called inside our CRIT_SECTION.
*/
......
......@@ -526,7 +526,7 @@ ginoptions(PG_FUNCTION_ARGS)
int numoptions;
static const relopt_parse_elt tab[] = {
{"fastupdate", RELOPT_TYPE_BOOL, offsetof(GinOptions, useFastUpdate)},
{"pending_list_cleanup_size", RELOPT_TYPE_INT, offsetof(GinOptions,
{"gin_pending_list_limit", RELOPT_TYPE_INT, offsetof(GinOptions,
pendingListCleanupSize)}
};
......
......@@ -2543,12 +2543,12 @@ static struct config_int ConfigureNamesInt[] =
},
{
{"pending_list_cleanup_size", PGC_USERSET, CLIENT_CONN_STATEMENT,
{"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
gettext_noop("Sets the maximum size of the pending list for GIN index."),
NULL,
GUC_UNIT_KB
},
&pending_list_cleanup_size,
&gin_pending_list_limit,
4096, 64, MAX_KILOBYTES,
NULL, NULL, NULL
},
......
......@@ -519,7 +519,7 @@
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
#pending_list_cleanup_size = 4MB
#gin_pending_list_limit = 4MB
# - Locale and Formatting -
......
......@@ -1172,7 +1172,7 @@ psql_completion(const char *text, int start, int end)
pg_strcasecmp(prev_wd, "(") == 0)
{
static const char *const list_INDEXOPTIONS[] =
{"fillfactor", "fastupdate", "pending_list_cleanup_size", NULL};
{"fillfactor", "fastupdate", "gin_pending_list_limit", NULL};
COMPLETE_WITH_LIST(list_INDEXOPTIONS);
}
......
......@@ -67,7 +67,7 @@ typedef char GinTernaryValue;
/* GUC parameters */
extern PGDLLIMPORT int GinFuzzySearchLimit;
extern int pending_list_cleanup_size;
extern int gin_pending_list_limit;
/* ginutil.c */
extern void ginGetStats(Relation index, GinStatsData *stats);
......
......@@ -326,7 +326,7 @@ typedef struct GinOptions
((relation)->rd_options && \
((GinOptions *) (relation)->rd_options)->pendingListCleanupSize != -1 ? \
((GinOptions *) (relation)->rd_options)->pendingListCleanupSize : \
pending_list_cleanup_size)
gin_pending_list_limit)
/* Macros for buffer lock/unlock operations */
......
......@@ -2244,14 +2244,14 @@ DROP TABLE array_gin_test;
-- Test GIN index's reloptions
--
CREATE INDEX gin_relopts_test ON array_index_op_test USING gin (i)
WITH (FASTUPDATE=on, PENDING_LIST_CLEANUP_SIZE=128);
WITH (FASTUPDATE=on, GIN_PENDING_LIST_LIMIT=128);
\d+ gin_relopts_test
Index "public.gin_relopts_test"
Column | Type | Definition | Storage
--------+---------+------------+---------
i | integer | i | plain
gin, for table "public.array_index_op_test"
Options: fastupdate=on, pending_list_cleanup_size=128
Options: fastupdate=on, gin_pending_list_limit=128
--
-- HASH
......
......@@ -658,7 +658,7 @@ DROP TABLE array_gin_test;
-- Test GIN index's reloptions
--
CREATE INDEX gin_relopts_test ON array_index_op_test USING gin (i)
WITH (FASTUPDATE=on, PENDING_LIST_CLEANUP_SIZE=128);
WITH (FASTUPDATE=on, GIN_PENDING_LIST_LIMIT=128);
\d+ gin_relopts_test
--
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment