introduce bufmgr hooks

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: introduce bufmgr hooks
Date: 2022-08-29 22:24:49
Message-ID: 20220829222449.GA540837@nathanxps13
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers,

I'd like to propose some new hooks for the buffer manager. My primary goal
is to allow users to create an additional caching mechanism between the
shared buffers and disk for evicted buffers. For example, some EC2
instance classes have ephemeral disks that are physically attached to the
host machine that might be useful for such a cache. Presumably there are
other uses (e.g., gathering more information about the buffer cache), but
this is the main use-case I have in mind. I am proposing the following new
hooks:

* bufmgr_read_hook: called in place of smgrread() in ReadBuffer_common().
It is expected that such hooks would call smgrread() as necessary.

* bufmgr_write_hook: called before smgrwrite() in FlushBuffer(). The hook
indicateѕ whether the buffer is being evicted. Hook functions must
gracefully handle concurrent hint bit updates to the page.

* bufmgr_invalidate_hook: called within InvalidateBuffer().

The attached patch is a first attempt at introducing these hooks with
acceptable names, placements, arguments, etc.

Thoughts?

--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com

Attachment Content-Type Size
v1-0001-Introduce-bufmgr-hooks.patch text/x-diff 6.6 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2022-08-29 22:40:13 Re: effective_multixact_freeze_max_age issue
Previous Message Andres Freund 2022-08-29 22:13:14 windows resource files, bugs and what do we actually want