Hi,
On Sep 20, 2022, 20:49 +0800, Melih Mutlu <m(dot)melihmutlu(at)gmail(dot)com>, wrote:
> Hi Zhang,
>
> Those are two different locks.
> The locks that are taken in the patch are for buffer headers. This locks only the current buffer and makes that particular buffer's info consistent within itself.
>
> However, the lock mentioned in the doc is for buffer manager which would prevent changes on any buffer if it's held.
> pg_buffercache_summary (and pg_buffercache_pages) does not hold buffer manager lock. Therefore, consistency across all buffers is not guaranteed.
>
> For pg_buffercache_pages, self-consistent buffer information is useful since it shows each buffer separately.
>
> For pg_buffercache_summary, even self-consistency may not matter much since results are aggregated and we can't see individual buffer information.
> Consistency across all buffers is also not a concern since its purpose is to give an overall idea about the state of buffers.
>
> I see that these two different locks in the same context can be confusing. I hope it is a bit more clear now.
>
> Best,
> Melih
Thanks for your explanation, LGTM.