Example
Invariant: system must maintain 3 replicas of all data objects
- view: disks’ health status
- trigger: a disk’s health status changes to “dead”
- invoke adaptation code, supplying
- identities of objects that were stored on dead disk
- view of utilization of all disks in the system
- adaptation code template: lock object, perform byte copy to least utilized disk, unlock object, update index
- adaptation code can be customized to exploit application semantic information
- e.g. application-specific selection of new disk(s) to hold replicated objects, data layout on disk, locking policy