DS L1. What are main design goals in DS? Flashcards
What is a Distributed System?
A DS is a computing system composed of interconnected nodes working together to achieve a common goal. The nodes are physically dispersed and communicate through a network. Each node can have different components
What are the benefits of DS’s?
Through the collective computational power and resources of the nodes, a DS can perform tasks more efficiently, handle large-scale data processing, improve fault tolerance, and support scalability
Name some examples of DS’s
CDN’s, cloud platforms, P2P networks, distributed databases
List the main design goals of a DS
Scalability, reliability, availability, consistency, performance, efficient communication, flexibility, security, manageability, and cost-effectiveness
What is scalability?
The ability to handle growing numbers of users and/or resources
How can scalability be achieved?
Either through horizontal scaling, eg adding more nodes, or through vertical scaling, eg increasing capacity of existing nodes
What is reliability?
The ability to operate reliably even in the presence of failures, faults, and unexpected events
How can reliability be achieved?
By implementing mechanisms such as redundancy (having more resources than are strictly needed), replication (maintaining multiple copies of resources), and error detection to ensure continuous operation and data integrity
What is availability?
The ability to ensure that services remain accessible and responsive at all times
How can availability be achieved?
By redundancy mechanisms and distributing workload across multiple nodes, minimizing downtime and mitigating impact of failures
What is consistency?
The ability to maintain data and state across multiple nodes, so that all nodes have the same view of the system despite concurrent operations and updates
How can consistency be achieved?
By implementing distributed consensus protocols, replication strategies, and transactional mechanisms
What is performance?
The ability to achieve optimal response time, throughput, and resource utilization
How can performance be achieved?
By optimizing communication protocols, minimizing latency, and efficiently utilizing computing resources to meet performance requirements
What is efficient communication?
The ability of nodes and components to communicate and coordinate