Characteristics of Distributed Systems Flashcards
1
Q
You are given a prompt, and you ask enough questions to thoroughly understand the functionality needed. Now ask which qualities of the system should be prioritized? These are the 5:
A
- Scalability
- Reliability
- Availability
- Efficiency
- Manageability
2
Q
- Scalability
A
- capability of a system to grow and
manage increased demand, while
mitigating performance loss - reasons a system may have to scale:
- increased data volume
- increased transaction volume
- horizontal vs. vertical scaling
3
Q
- Reliability
A
- probability a system will fail
- needs to keep delivering its services
even if some components fail. - achievable by redundancy of both the
software components and data - highly reliable –> highly available
4
Q
- Availability
A
- time a system remains functional
- takes into account maintainability, repair
times and spares availability. - highly reliable –> highly available
- can be very available but not reliable, if
repair times are minimal and theres
available spares of data and
components
5
Q
- Efficiency
A
- good measures are typically latency and
throughput delivered in a given time. - this is typically relative as there are
many impacting aspects.
6
Q
- Manageability
A
- simplicity and speed with which a
system can be repaired or maintained. - low manageability –> decreased
availability, thus reliability (most likely) .
7
Q
Horizontal Scaling
A
- associated with NOSQL
- add more servers to the pool or cloud
coverage - easier to scale dynamically
- more cost effective than vertical scaling
- Cassandra, MongoDB
8
Q
Vertical Scaling
A
- Associated with SQL
- add more power to existing server
(CPU, RAM, Storage). - limited by server capacity
- involves downtime
- less cost effective
- MySQL allows for easy way to switch
from machines but still has downtime