Обсуждение: Change the bool member of the Query structure to bits

Поиск
Список
Период
Сортировка

Change the bool member of the Query structure to bits

От
Quan Zongliang
Дата:
The Query structure has an increasing number of bool attributes. This is 
likely to increase in the future. And they have the same properties. 
Wouldn't it be better to store them in bits? Common statements don't use 
them, so they have little impact. This also saves memory space.

--
Quan Zongliang
Вложения

Re: Change the bool member of the Query structure to bits

От
Quan Zongliang
Дата:
Sorry. I forgot to save a file. This is the latest.

On 2024/2/20 18:07, Quan Zongliang wrote:
> 
> The Query structure has an increasing number of bool attributes. This is 
> likely to increase in the future. And they have the same properties. 
> Wouldn't it be better to store them in bits? Common statements don't use 
> them, so they have little impact. This also saves memory space.
> 
> -- 
> Quan Zongliang
Вложения

Re: Change the bool member of the Query structure to bits

От
Tomas Vondra
Дата:
On 2/20/24 11:11, Quan Zongliang wrote:
> 
> Sorry. I forgot to save a file. This is the latest.
> 
> On 2024/2/20 18:07, Quan Zongliang wrote:
>>
>> The Query structure has an increasing number of bool attributes. This
>> is likely to increase in the future. And they have the same
>> properties. Wouldn't it be better to store them in bits? Common
>> statements don't use them, so they have little impact. This also saves
>> memory space.
>>

Hi,

Are we really adding bools to Query that often? A bit of git-blame says
it's usually multiple years to add a single new flag, which is what I'd
expect. I doubt that'll change.

As for the memory savings, can you quantify how much memory this would save?

I highly doubt that's actually true (or at least measurable). The Query
struct has ~256B, the patch cuts that to ~232B. But we allocate stuff in
power-of-2, so we'll allocate 256B chunk anyway. And we allocate very
few of those objects anyway ...

regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: Change the bool member of the Query structure to bits

От
Tom Lane
Дата:
Quan Zongliang <quanzongliang@yeah.net> writes:
> The Query structure has an increasing number of bool attributes. This is 
> likely to increase in the future. And they have the same properties. 
> Wouldn't it be better to store them in bits? Common statements don't use 
> them, so they have little impact. This also saves memory space.

I'm -1 on that, for three reasons:

* The amount of space saved is quite negligible.  If queries had many
Query structs then it could matter, but they don't.

* This causes enough code churn to create a headache for back-patching.

* This'll completely destroy the readability of these flags in
pprint output.

I'm not greatly in love with the macro layer you propose, either,
but those details don't matter because I think we should just
leave well enough alone.

            regards, tom lane



Re: Change the bool member of the Query structure to bits

От
Quan Zongliang
Дата:

On 2024/2/20 23:45, Tom Lane wrote:
> Quan Zongliang <quanzongliang@yeah.net> writes:
>> The Query structure has an increasing number of bool attributes. This is
>> likely to increase in the future. And they have the same properties.
>> Wouldn't it be better to store them in bits? Common statements don't use
>> them, so they have little impact. This also saves memory space.
> 
> I'm -1 on that, for three reasons:
> 
> * The amount of space saved is quite negligible.  If queries had many
> Query structs then it could matter, but they don't.
> 
> * This causes enough code churn to create a headache for back-patching.
> 
> * This'll completely destroy the readability of these flags in
> pprint output.
> 
> I'm not greatly in love with the macro layer you propose, either,
> but those details don't matter because I think we should just
> leave well enough alone.
> 
>             regards, tom lane
I get it. Withdraw.




Re: Change the bool member of the Query structure to bits

От
Quan Zongliang
Дата:

On 2024/2/20 19:18, Tomas Vondra wrote:
> On 2/20/24 11:11, Quan Zongliang wrote:
>>
>> Sorry. I forgot to save a file. This is the latest.
>>
>> On 2024/2/20 18:07, Quan Zongliang wrote:
>>>
>>> The Query structure has an increasing number of bool attributes. This
>>> is likely to increase in the future. And they have the same
>>> properties. Wouldn't it be better to store them in bits? Common
>>> statements don't use them, so they have little impact. This also saves
>>> memory space.
>>>
> 
> Hi,
> 
> Are we really adding bools to Query that often? A bit of git-blame says
> it's usually multiple years to add a single new flag, which is what I'd
> expect. I doubt that'll change.
> 
> As for the memory savings, can you quantify how much memory this would save?
> 
> I highly doubt that's actually true (or at least measurable). The Query
> struct has ~256B, the patch cuts that to ~232B. But we allocate stuff in
> power-of-2, so we'll allocate 256B chunk anyway. And we allocate very
> few of those objects anyway ...
> 
> regards
> 
That makes sense. Withdraw.