Browse Prior Art Database

Floating memory pages in a cluster environment Disclosure Number: IPCOM000010386D
Original Publication Date: 2002-Nov-22
Included in the Prior Art Database: 2002-Nov-22
Document File: 3 page(s) / 11K

Publishing Venue



In order to achieve the goal of a self-organizing Linux cluster there are various problems that have to be solved. One of these is to share memory in a cluster wide manner. This publication presents a possible solution how to extend the existing swapping mechanism of the Linux operating system in a way that shared memory pages can be obtained from a remote node by deploying a new type of swap device. A design is proposed for the device driver responsible for swapping in and swapping out shared pages remotely. Further considerations are made regarding multiple access to shared pages. This issue leads to designing an appropriate locking mechanism for shared pages.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 40% of the total text.

Page 1 of 3

Floating memory pages in a cluster environment

1. Introduction

In this document a mechanism is described, that allows the implementation of Distributed Shared Memory in a cluster of computing nodes.

    Generally, clusters share common resources of their single nodes. Among these resources are CPU time, memory and disk space. The topic of this publication will be to find a suitable solution to the problem of sharing memory in a cluster. When running multi-threaded enterprise applications in a distributed environment, it is necessary to share memory pages in a cluster-wide manner to retain Inter Process Communication (IPC). This is a task for the operating system acting as Cluster Middleware.

    A centralized approach to Distributed Shared Memory is problematic due to the existence of a Single Point of Failure. Therefore this thesis follows a distributed paradigm, which is to build up a Distributed Shared Memory environment, that organizes itself.

    A Distributed Shared Memory resource is memory not residing in the local node's main memory. Thus, if that Distributed Shared Memory resource is accessed, the operating system has to retrieve it remotely. This behaviour is an analogy to the paging mechanism that retrieves pages not present in main memory from local disks. What, if pages are not obtained from a local disk, but from a virtual device on a remote node?

    Clustering aims at high-performance and high-availability. With its stability, reliability and its source code being available, Linux proved to be a suitable cluster operating system. That is why this Distributed Shared Memory solution is designed for Linux.

2. Approach
2.1 Design paradigm

    The design principle of the distributed approach to Shared Memory pursued in this publication is to avoid a Single Point of Failure. A central administrative instance like a Cluster Manager would be a Single Point of Failure. Thus, Cluster Manager involvement in Distributed Shared Memory management must be as low as possible. Single nodes should be able to organize themselves to a great extent. Furthermore, the Cluster Manager itself can be designed in a distributed way, i.e. the Cluster Manager is modularized and every cluster node can possibly perform one of the Cluster Manager's tasks.

    Extending the Linux Swap Mechanism meets the requirement of low Cluster Manager involvement. The Page Tables of each cluster node contains entries pointing to local memory and swapped-out pages. If a swapped out page resides on a remote swap device in the cluster, a Global Virtual Address Space is built. Other issues that need to be contemplated in a self-organizing cluster are e.g. Process Migration, Distributed Socket Descriptors, Socket Migration and Shared File System.

2.2 Use Cases

    There are two main use cases for this concept of Distributed Shared Memory: - Process Migration
- Distributed System V Shared Memory

Page 2 of 3

2.2.1 Process Migration

    Process Migration is a vital part for a self-organizing cluster....