From: | Ibrar Ahmed <ibrar(dot)ahmad(at)gmail(dot)com> |
---|---|
To: | Daniel Migowski <dmigowski(at)ikoffice(dot)de> |
Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru> |
Subject: | Re: Patch: New GUC prepared_statement_limit to limit memory used by prepared statements |
Date: | 2019-08-17 17:10:45 |
Message-ID: | CALtqXTdLY1uHqifLWJzjKkod-X6GO-+JLFUgLPag+pO+xMWEmQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Aug 17, 2019 at 6:58 PM Daniel Migowski <dmigowski(at)ikoffice(dot)de>
wrote:
> Hello,
>
> attached you find a patch that adds a new GUC:
>
Quick questions before looking at the patch.
>
> prepared_statement_limit:
>
> - Do we have a consensus about the name of GUC? I don't think it is
the right name for that.
- Is this a WIP patch or the final patch? Because I can see TODO and
non-standard
comments in the patch.
> Specifies the maximum amount of memory used in each session to
> cache
> parsed-and-rewritten queries and execution plans. This affects
> the maximum memory
> a backend threads will reserve when many prepared statements
> are used.
> The default value of 0 disables this setting, but it is
> recommended to set this
> value to a bit lower than the maximum memory a backend worker
> thread should reserve
> permanently.
>
> If the GUC is configured after each save of a CachedPlanSource, or after
> creating a CachedPlan from it, the function
> EnforcePreparedStatementLimit is called now. It checks the mem usage of
> the existing saved CachedPlanSources and invalidates the query_list and
> the gplan if available until the memory limit is met again.
>
> CachedPlanSource are removed-and-tailadded in the saved_plan_list
> everytime GetCachedPlan is called on them so it can be used as a LRU list.
>
> I also reworked ResetPlanCache, PlanCacheRelCallback and
> PlanCacheObjectCallback a bit so when a CachedPlanSource is invalidated
> the query_list is not only marked as invalid but it is also fully
> released to free memory here.
>
> Regards,
> Daniel Migowski
>
> PS(at)Konstantin: This patch also includes the CachedPlanMemoryUsage
> function you like, maybe you like the review the patch for me?
>
>
--
Ibrar Ahmed
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2019-08-17 17:28:53 | Re: POC: Cleaning up orphaned files using undo logs |
Previous Message | Stephen Frost | 2019-08-17 17:09:07 | Re: [Proposal] Table-level Transparent Data Encryption (TDE) and Key Management Service (KMS) |