DSL advantages (cont.)
Artificial diversity
- Potentially allow system to continue operation in face of internal bugs or malicious attack
- Multiple implementations of component run simultaneously on different data replicas
- Continuously check each other with respect to high-level behavior
- Non-traditional fault-tolerance, but related to process pairs
- Potentially usable to enhance performance
- Select best-performing implementation(s) for future use; periodically reevaluate choice
- Examples of possible implementation differences
- Low-level: runtime memory layout, code ordering and layout
- High-level: system resource usage (recompute vs. use stored data, general space/time/bandwidth tradeoffs)