Runtime system extensibility
Two ways of looking at system
- Partitioned on functional/mechanism boundaries
- Collection of libraries: failure detection, transactions, ...
- Mechanisms are isolated
- Partitioned on global system properties
- This is how the programmer thinks about the system (high-level)
- e.g. application-specific data availability policy
- Failure detection (which devices to monitor, …)
- Replication (used to restore redundancy)
- Transactions (how to restart work in progress)
- Caching (how to handle dirty cached objects during failure)
Customized runtimesystem library