| From: | Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com> |
|---|---|
| To: | 邱宇航 <iamqyh(at)gmail(dot)com> |
| Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Add pg_buffercache_mark_dirty[_all] functions to the pg_buffercache |
| Date: | 2025-11-26 14:02:21 |
| Message-ID: | CAN55FZ0AzMr=4bD+sgkTNh5xiWJAynJXtqXCSqmz3kuV0MuP7A@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
On Mon, 24 Nov 2025 at 11:47, 邱宇航 <iamqyh(at)gmail(dot)com> wrote:
>
> > 2025年11月24日 15:50,Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com> 写道:
> >
> > Could you please explain that a bit more? AFAIU, conditional locks are
> > mainly used to escape from deadlock situations and we can not cause a
> > deadlock here. Is it because using conditional locks might make the
> > functions faster by skipping the wait situations?
>
> Bgwriter/Checkpointer might always blocks the mark buffer dirty SQL.
>
> sequence Bgwriter/Checkpointer mark-buffer-dirty SQL
> 1 LockBuffer(1) WaitBuffer(1)
> 2 UnlockBuffer(1),
> and LockBuffer(2)
> 3 After unlock wakeup,
> WaitBuffer(2)
> ... ... ...
>
> I don't know if this could really happen. Maybe we need some tests. I
> just afraid that pg_buffercache_mark_dirty_{relation, all} SQL could be
> slow and inefficient.
I do not think that will be a problem but I can change it if the
general consensus is towards this way. Also, if we change this for
pg_buffercache_mark_dirty_* functions, I think we need to apply the
same for the pg_buffercache_evict_* functions.
--
Regards,
Nazir Bilal Yavuz
Microsoft
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Filip Janus | 2025-11-26 14:02:58 | Re: [PATCH] Better Performance for PostgreSQL with large INSERTs |
| Previous Message | Dmitry Dolgov | 2025-11-26 13:53:17 | Re: System views for versions reporting |