Buffer Pool
বাফার পুল
Memory-তে disk page-এর cache — পড়া-লেখা আগে এখানে, eviction policy ঠিক করে কোন page ডিস্কে ফিরবে।
also: page-cache-db, buffer-cache
OS page cache থেকে আলাদা কেন? Database জানে কোন page কখন দরকার — query context আছে, O_DIRECT-এ double caching এড়ানো যায়:
SELECT c.relname, count(*) FROM pg_buffercache b
JOIN pg_class c ON b.relfilenode = pg_relation_filenode(c.oid) GROUP BY 1;
- Pin/unpin: চলমান access-এ page ধরে রাখা — evicted হতে পারে না
- Dirty page: বদলানো হয়েছে, ডিস্কে যেতে হবে — কিন্তু WAL flush-এর আগে নয়
- Eviction clock/LRU variant — full LRU-র sequential flood bug এড়াতে
Hit ratio ৯৯% দেখে খুশি হওয়ার আগে working set vs pool size ভাবুন।