Date: March 6, 2025

Topic: Global Memory Systems

Recall

If a process page faults, the page it is looking for is not in pmem and usually we need to go to disk to get it. For GMS, when a fault occurs, we can additionally try to find the page in the cluster memory.

GMS only holds clean copies, and if copies are dirty, they are written onto disk. This prevents data loss in case of failures.

Notes

Context for Global Memory Systems

Global Memory System uses cluster memory for paging across the network and integrates it in memory hierarchy, so we may use peer memory for paging across LAN

Access to remote memory in caches may be faster than access to an actual electromechanical local disk.

image.png


In GMS, a single application can span across multiple nodes, where different nodes may need the same pages. GSM allows such sharing, and it will be in the local part of the pmem.

When the page is not used, it will be put in the global part, which acts like a disc and hence makes the page private.

The local and global portions change dynamically according to memory pressure on the particular node.

GMS Basics








<aside> 📌 SUMMARY: A Global Memory System (GMS) distributes memory pressure across multiple nodes in a distributed system by using strategies such as geriatric management, which ensures older, less-frequently used pages are migrated to idle nodes or disk storage. Each node maintains a fixed sum of local and global cache sizes—where the local cache stores the node’s working set and the global cache provides community memory resources for other nodes experiencing pressure. Coordination epochs are initiated by the node predicted to be the most idle to minimize overhead. GMS implementation integrates closely with the Virtual Memory Manager (VMM), Unified Buffer Cache (UBC), Pageout Daemon, and Free List. When handling a page fault, three data structures are traversed in the sequence: Virtual Address (VA) → User/Process ID (UID) → Page Ownership Directory (POD) → Global Cache Directory (GCD) → Page Frame Directory (PFD). The GCD maintains a dynamic global mapping of pages, preventing static POD-to-PFD mapping issues, especially important during periods of high page traffic.

</aside>