From: | Stephen Frost <sfrost(at)snowman(dot)net> |
---|---|
To: | Marco Fortina <marco_fortina(at)hotmail(dot)it> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: R: Proposal: Shared Work Mem Area |
Date: | 2023-04-06 14:34:30 |
Message-ID: | ZC7Ydv5PxdcfjmPZ@tamriel.snowman.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Greetings,
Please don't top-post on the PG mailing lists, it makes it harder to
follow the discussion.
* Marco Fortina (marco_fortina(at)hotmail(dot)it) wrote:
> https://commitfest.postgresql.org/42/3867/ is not exacly what I proposed as new feature to developers.
I understood what you were proposing.
> If I'm not wrong, almost all main memory areas have a fixed size:
>
> shared_buffers
> effective_cache_size
> wal_buffers
>
> Instead, work_mem is per-process dynamically allocated up to defined size limit.
That's not how work_mem works actually. It's a per-node amount and it's
not a per-process overall limit, nor is it really a hard limit though
some nodes will do their best to respect the amount configured.
> What I suggested is to replace work_mem from per-process allocation to global and fixed size allocation (see pga_aggregate_target on Oracle) and shared to worker processes.
I understood the suggestion and it's a lot of work for an unclear gain.
You noted that having it be pulled from a single area would allow
administrators to configure an overall memory usage limit- but that's
not the only way to do that and there's an existing effort to do exactly
that already underway that's a lot simpler than what you're proposing.
While there might be other advantages to having a shared memory segment
be used for work_mem, you've not outlined any.
> Let's assume the new parameter name is worker_mem_area and this was set to 8GB: with my proposal method each worker process do not use it's own dedicated work_mem but the shared one.
I understand your suggestion, but making such a large change just to
make it isn't sensible, there should be reasoning behind why that's
better than what we're doing already or proposing to do.
> In this way each worker is also able to peek free pages from the worker_mem_area if needed.
This can be done with the existing approach and doesn't require a shared
memory segment for work_mem. We are pretty far from having an actual
acceptance system for queries though but I do agree that would be a
useful thing to work towards. I don't know that it requires work_mem
being in shared memory though.
Thanks,
Stephen
From | Date | Subject | |
---|---|---|---|
Next Message | Jehan-Guillaume de Rorthais | 2023-04-06 15:41:58 | Re: Patroni vs pgpool II |
Previous Message | Marco Fortina | 2023-04-06 13:37:06 | Re: Proposal: Shared Work Mem Area |