Managers


Overview

Managers are responsible for maintaining a consistent and recoverable stable copy of the data represented by the container. It is only within a manager that the distinction between persistent and ephemeral data is apparent. Managers are free to provide resilient persistent storage using the mechanism most appropriate to the kind of data being managed.

Managers alone are not able to maintain a system-wide consistent state. Grasshopper therefore provides intrinsic mechanisms (described here) by which the system can always recover a globally consistent state. In line with the goals of orthogonal persistence, this is achieved without imposing the requirement that user code (other than manager code) participate in the mechanism. Users only perceive resilient persistent address spaces. Furthermore, Grasshopper provides this mechanism in such a way that individual managers may use their own optimised stability protocols and still coexist within the Grasshopper framework.

Managers are ordinary programs which reside and execute within their own containers; their state is therefore resilient. Managers are responsible for:

A manager is invoked whenever the kernel detects a memory access fault to data stored in the container it manages. Making data accessible in a container takes place in two steps: The kernel is responsible for identifying which manager should be requested to supply data. This is achieved by traversing the container mapping hierarchy. Once the correct manager has been identified, the kernel requests this manager to supply the data. The manager must deliver the requested data to the kernel, which then arranges the hardware translation tables in such a way that the data is visible at an appropriate address in the container.

In Grasshopper, the manager is the only mechanism by which data migrates from stable to volatile storage. This is in contrast to conventional operating systems in which the usual abstraction of stable storage is the file system. Grasshopper has no file system in the conventional sense. Managers are responsible for maintaining a resilient copy of the data in a container on stable media. It is only within a manager that the distinction between persistent and ephemeral data is apparent. Managers can provide resilient persistent storage using whatever mechanism is appropriate to the type of data contained in the managed container.

See Also

Proxy

Local Container Descriptors

Page sets

Disks