>>> what GetMemoryChunkSpace() works on IIUC. >>> Am i correct here? >> That's interesting an interesting realization. You're right that we >> cannot use GetMemoryChunkSpace() in that case. >> >> However, I'm wondering if the better approach wouldn't be to change fd.c >> to use a long-lived memory context. Then all bookkeeping would happen >> automatically and the memory size could simply be reported via existing >> memory context stats infrastructure. >> >> Not entirely sure though if there's some roadblock when switching to a >> memory context. > I don't see any issue with this either. However, the only benefit we would > gain is using existing infrastructure but only for backend vfd cache memory > (i.e cache_bytes). > Everything else stays the same (counters, cluster-wide memory); therefore, > if there's no other benefit to replacing with memory contexts, maybe it's > not worth it.
The biggest benefit in my view is consistency with the rest of PostgreSQL. That is from a usage point of view as well as from a coding point of view. If you want, I can give that a try and share a patch with you if successful.