Systems and Layers Flashcards
What is system design?
Computer systems have computation, storage and transmission resources. System design is putting these together into a harmonious whole.
What is the goal of system design?
Maximizing a set of performance metrics given a set of resource constraints.
Time constraints
Deadline for task completion, time to market and mean time between failures.
Response time
Mean time to complete a task
Throughput
Number of tasks completed per unit time
Degree of Parallelism
Response time * throughput
Space Constraints
Limit to available memory and limits to bandwidth.
Computation Constraints
Amount of processing that can be done in unit time.
Money Constraints
What components can be used, what prices users are willing to pay for a service and the number of engineers available to complete a task.
Labour Constraints
Labour is the human efffor required to design and build a system nd constrains what can be done and how fast.
Social Constraints - Standards
Forces designs to conform to sometimes non-sensical requirements. Underspecified standard can lead to faulty and non-interopable implementations.
Social Constraints - Market Requirements
Backwards compatibility and the need to use a particular operating system.
Scaling
A design constraint - centralised elements prevent the design from easily scaling
Bottleneck
The most constrained element in the system.
Balanced system
A system in which all resources are simultaneously bottlenecked.
Multiplexing
Essentially sharing, trades time and space for money as user sees an increased response time and takes up space while waiting but the system costs less.