Patch: New GUC prepared_statement_limit to limit memory used byprepared statements
От | Daniel Migowski |
---|---|
Тема | Patch: New GUC prepared_statement_limit to limit memory used byprepared statements |
Дата | |
Msg-id | ed51c14c-b3ff-5e2e-962c-69ac3ccb2c07@ikoffice.de обсуждение исходный текст |
Ответы |
Re: Patch: New GUC prepared_statement_limit to limit memory used byprepared statements
|
Список | pgsql-hackers |
Hello, attached you find a patch that adds a new GUC: prepared_statement_limit: 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@Konstantin: This patch also includes the CachedPlanMemoryUsage function you like, maybe you like the review the patch for me?
Вложения
В списке pgsql-hackers по дате отправления: