Re: queryId constant squashing does not support prepared statements

2025-05-22 Thread Dmitry Dolgov
> On Wed, May 21, 2025 at 08:22:19PM GMT, Sami Imseih wrote: > > > > At the same time AFAICT there isn't much more code paths > > > > to worry about in case of a LocationExpr as a node > > > > > > I can imagine there are others like value expressions, > > > row expressions, json array expressions,

Re: queryId constant squashing does not support prepared statements

2025-05-23 Thread Dmitry Dolgov
> On Fri, May 23, 2025 at 09:05:54AM GMT, Sami Imseih wrote: > > > On Thu, May 22, 2025 at 10:23:31PM GMT, Sami Imseih wrote: > > > > This does not get squashed: > > > > Q: select where 2 in (1, 4) and > > > > 1 in (5, cast(7 as int), 6, (cast(8 as int)), 9, 10, (cast(8 as > > > > text))::int); >

Re: queryId constant squashing does not support prepared statements

2025-05-23 Thread Dmitry Dolgov
> On Thu, May 22, 2025 at 10:23:31PM GMT, Sami Imseih wrote: > > This does not get squashed: > > Q: select where 2 in (1, 4) and > > 1 in (5, cast(7 as int), 6, (cast(8 as int)), 9, 10, (cast(8 as > > text))::int); > > R: select where $1 in ($2 /*, ... */) and > > $3 in ($4, cast($5 as int), $6, (

Re: queryId constant squashing does not support prepared statements

2025-05-21 Thread Dmitry Dolgov
> On Tue, May 20, 2025 at 04:50:12PM GMT, Sami Imseih wrote: > > At the same time AFAICT there isn't much more code paths > > to worry about in case of a LocationExpr as a node > > I can imagine there are others like value expressions, > row expressions, json array expressions, etc. that we may > w

Re: Changing shared_buffers without restart

2025-06-20 Thread Dmitry Dolgov
> On Fri, Jun 20, 2025 at 12:19:31PM +0200, Dmitry Dolgov wrote: > Thanks! I've reworked the series to implement approach suggested by > Thomas, and applied your patches to support buffers shrinking on top. I > had to restructure the patch set, here is how it looks like right now:

Re: Changing shared_buffers without restart

2025-07-16 Thread Dmitry Dolgov
> On Tue, Jul 15, 2025 at 10:52:01PM +, Jack Ng wrote: > >> On Mon, Jul 14, 2025 at 03:18:10PM +, Jack Ng wrote: > >> Just brain-storming here... would moving NBuffers to shared memory solve > >this specific issue? Though I'm pretty sure that would open up a new set of > >synchronization is

Re: Changing shared_buffers without restart

2025-07-16 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 05:55:13PM -0500, Jim Nasby wrote: > > Finally, while shared buffers is the most visible target here, there are > other shared memory settings that have a *much* smaller surface area, and > in my experience are going to be much more valuable from a tuning > perspective; no

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 10:22:17AM -0400, Burd, Greg wrote: > I'd initialize them, expand BufferDescriptors, and adjust NBuffers. The > clock-sweep algorithm will eventually find them and make use of them. The > buf->freeNext should be FREENEXT_NOT_IN_LIST so that StrategyFreeBuffer() will > do

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 03:18:10PM +, Jack Ng wrote: > Just brain-storming here... would moving NBuffers to shared memory solve this > specific issue? Though I'm pretty sure that would open up a new set of > synchronization issues elsewhere, so I'm not sure if there's a net gain. It's in f

Re: Changing shared_buffers without restart

2025-07-04 Thread Dmitry Dolgov
> On Fri, Jul 04, 2025 at 02:06:16AM +0200, Tomas Vondra wrote: > I took a look at this patch, because it's somewhat related to the NUMA > patch series I posted a couple days ago, and I've been wondering if > it makes some of the NUMA stuff harder or simpler. Thanks a lot for the review! It's a pl

Re: Changing shared_buffers without restart

2025-07-07 Thread Dmitry Dolgov
> On Mon, Jul 07, 2025 at 01:57:42PM +0200, Tomas Vondra wrote: > > It could be potentialy useful for any GUC that controls a resource > > shared between backend, and requires restart. To make this GUC > > changeable online, every backend has to perform some action, and they > > have to coordinate

Re: Changing shared_buffers without restart

2025-07-07 Thread Dmitry Dolgov
> On Mon, Jul 07, 2025 at 07:12:50PM +0530, Ashutosh Bapat wrote: > > My current proposal is ALTER SYSTEM ... SET + pg_reload_conf() with > pending mark + pg_apply_pending_conf(, parameters>). The third function would take a GUC name as parameter > and complete the pending application change. If t

Re: Changing shared_buffers without restart

2025-07-13 Thread Dmitry Dolgov
> On Sun, Jul 06, 2025 at 03:21:08PM +0200, Dmitry Dolgov wrote: > > On Sun, Jul 06, 2025 at 03:01:34PM +0200, Dmitry Dolgov wrote: > > * This way any backend between the ProcSignalBarriers will be able > > proceed with whatever it's doing, and there is need to make sur

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 10:24:50AM +0100, Thom Brown wrote: > On Mon, 14 Jul 2025, 09:54 Dmitry Dolgov, <9erthali...@gmail.com> wrote: > > > > On Mon, Jul 14, 2025 at 01:55:39PM +0530, Ashutosh Bapat wrote: > > > > You're right of course, a buffer id coul

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 10:25:51AM +0530, Ashutosh Bapat wrote: > > Currently it's being addressed via every backend waiting for each other, > > but I guess it could be as well managed via handling the freelist, so > > that only "available" buffers will be inserted into the lookup table. > > I di

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 01:55:39PM +0530, Ashutosh Bapat wrote: > > You're right of course, a buffer id could be returned from the > > ClockSweep and from the custom strategy buffer ring. Buf from what I see > > those are picking a buffer from the set of already utilized buffers, > > meaning that

Re: Adding basic NUMA awareness

2025-07-03 Thread Dmitry Dolgov
> On Wed, Jul 02, 2025 at 05:07:28PM +0530, Ashutosh Bapat wrote: > > There's also the question how this is related to other patches affecting > > shared memory - I think the most relevant one is the "shared buffers > > online resize" by Ashutosh, simply because it touches the shared memory. > > I

Re: Changing shared_buffers without restart

2025-07-05 Thread Dmitry Dolgov
> On Fri, Jul 04, 2025 at 05:23:29PM +0200, Tomas Vondra wrote: > >> 2) pending GUC changes > >> > >> Perhaps this should be a separate utility command, or maybe even just > >> a new ALTER SYSTEM variant? Or even just a function, similar to what > >> the "online checksums" patch did, possibly combi

Re: Changing shared_buffers without restart

2025-07-06 Thread Dmitry Dolgov
> On Fri, Jul 04, 2025 at 04:41:51PM +0200, Dmitry Dolgov wrote: > > v5-0003-Introduce-pss_barrierReceivedGeneration.patch > > > > 1) Do we actually need this? Isn't it enough to just have two barriers? > >Or a barrier + condition variable, or something l

Re: Changing shared_buffers without restart

2025-07-06 Thread Dmitry Dolgov
> On Sun, Jul 06, 2025 at 03:01:34PM +0200, Dmitry Dolgov wrote: > * This way any backend between the ProcSignalBarriers will be able > proceed with whatever it's doing, and there is need to make sure it > will not access buffers that will soon disappear. A suggestion so far &

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 10:23:23AM -0400, Andres Freund wrote: > > Those steps are separated in time, and I'm currently trying to understand > > what are the consequences of performing them in different order and whether > > there are possible concurrency issues under various scenarios. Does this

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 08:56:56AM -0400, Andres Freund wrote: > > Ah, I see what you mean folks. But I'm talking here only about buffers > > which will be allocated after extending shared memory -- they must go > > through the freelist first (I don't see why not, any other options?), > > and cl

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 09:14:26AM -0400, Andres Freund wrote: > > > Clock sweep can find any buffer, independent of whether it's on the > > > freelist. > > > > It does the search based on nextVictimBuffer, where the actual buffer > > will be a modulo of NBuffers, right? If that's correct and I

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 09:42:46AM -0400, Andres Freund wrote: > What on earth would be the point of putting a buffer on the freelist but not > make it reachable by the clock sweep? To me that's just nonsensical. To clarify, we're not talking about this scenario as "that's how it would work afte

Re: Changing shared_buffers without restart

2025-07-14 Thread Dmitry Dolgov
> On Mon, Jul 14, 2025 at 11:11:36AM -0400, Andres Freund wrote: > Hi, > > On July 14, 2025 10:39:33 AM EDT, Dmitry Dolgov <9erthali...@gmail.com> wrote: > >> On Mon, Jul 14, 2025 at 10:23:23AM -0400, Andres Freund wrote: > >> > Those steps are separat

<    3   4   5   6   7   8