How does a database buffer manager work within a DBMS? This paper explores the implementation of a database buffer manager as a key component of a Database Management System (DBMS). It outlines the interface between calling components and the buffer manager, highlighting the distinctions between virtual memory paging and database buffer management. It introduces the concepts of referencing versus addressing database pages and fixing pages to prevent uncontrolled replacement. The paper examines three essential tasks—buffer search, allocation of frames, and page replacement—discussing implementation alternatives and providing examples from a CODASYL DBMS performance evaluation project. This detailed exploration is useful for database designers and developers looking to optimize DBMS performance. The paper includes insights from a CODASYL DBMS performance evaluation project.
Published in ACM Transactions on Database Systems, this article directly aligns with the journal's focus on fundamental database system principles and practices. By discussing the implementation of a database buffer manager and addressing key challenges in buffer management, the paper contributes to the core knowledge base of the database community.