What is the difference between fault and failure?
Faults are deviations from specifications, while failures affect system functionality
What is vertical scaling?
Adding more resources to a single machine
What is fault tolerance?
A system's ability to continue functioning despite faults
What is simplicity in maintainability?
Managing system complexity
What is throughput?
Number of processed data points per unit time
How can hardware faults be tolerated?
Through rolling upgrades and fault-tolerant architectures
What is horizontal scaling?
Adding more machines to the system
Name a type of fault that replication can handle.
Hardware faults
Define evolvability.
Making a system easy to change over time
What is latency?
Time taken to respond to a request
What is eventual consistency?
Ensures all replicas will eventually converge to the same state
Why is partitioning important for scalability?
Distributes data to prevent bottlenecks and improves performance
What is the purpose of leader election in replication?
To appoint a new leader after the current one fails
What does operability focus on?
Simplifying operational tasks for engineers
Why is the 99th percentile important in performance?
It represents the worst-case scenarios most users experience
What is a rolling upgrade?
Updating a system incrementally without downtime
How does dynamic rebalancing help scalability?
Adjusts data distribution as load increases
How does replication improve reliability?
By keeping multiple copies of data across nodes
Why does maintenance dominate software costs?
Long-term upkeep often exceeds development costs
What is hybrid scaling?
Combining vertical and horizontal scaling
How do distributed systems handle replication lag?
Through strategies like direct reads from leaders or using indexes
What is a hot spot, and how is it mitigated?
Overloaded nodes, mitigated by hashing and replication
What is the difference between synchronous and asynchronous replication?
Synchronous waits for acknowledgment; asynchronous does not
How does good maintainability improve developer productivity?
Simplifies adding features and resolving issues
How does load balancing improve performance?
Distributes requests evenly across servers