Module 1 - Intro Flashcards
What is a distributed system?
A collection of autonomous computing elements what appear to its users as a single coherent system
What is a middleware?
A layer of software that separates applications from the underlying platforms
What are 5 goals of distributed systems?
- Support resource sharing
- Making distribution transparent
- being open
- being scalable
- being highly available
What a does “distribution transparent” mean
Give an example
The system hides the fact that processes and resources are physically distributed
Examples:
- They hide where a resource is physically located
- They hide that the data is replicated
- They hide failures
- They hide that resources may be shared by several processes
What does a “open distributed system” mean
A system that offers components that can be easily used or integrated into other systems
Properties of an open system:
- interoperability
- composability
- extensibility
- separation of policy and mechanism
What does a “scalable distributed system” mean
Scalability is a system’s ability to expand along three axes:
- Size (number of users & resources)
- Geography
- Administration (multiple independent admins)
Being able to add resources and improve the performance of the system
What are 3 anti-patterns for scalable distributed systems?
- Centralized services (a single server for all users)
- Centralized data (a single DB for all data
- Centralized algorithms (it isn’t scalable for the algorithms to assume a global view of the network)
What are primitive common rules to improve scalability in a distributed system?
Batch processing
Replication of microservices
Partitioning of requests
Load balancing
The idea is to avoid the anti-patterns
What are the 8 fallacies (false beliefs) of distributed systems? (given the network)
As in, what are NOT features of a distributed system?
- The network is reliable
- The network is secure
- The network is homogeneous
- The topology does not change
- Latency is zero
- Bandwidth is infinite
- Transport cost is zero
- There is a single administrator
What does it mean for a network in a distributed system to be homogeneous
For the connections between microservices to all be the same bandwidth and latency
In high performance computing, there are multiprocessor systems and multicomputer systems. Describe the difference between a multiprocessor and a multicomputer system.
A multiprocessor shares memory across the computing units, whereas a multicomputer passes messages between computing units (each computing unit has its own memory block)
Multiprocessor Systems = parallel computing
Multicomputer Systems = distributed computing
What are characteristics of a shared memory system? (a system in which computing units share memory)
- Threads communicate together by accessing shared variables
- Requires shared variable primitives
- Useful for CPU intensive programs
- Parallel computing
What are characteristics of Message passing systems (a system in which each computing unit has its own memory block)
- Processes must communicate by sending and receiving messages over a network
- More scalable but system must support messages
- Distributed computing
What are “cluster computing systems”?
Cluster computing frameworks distribute CPU or I/O-intensive
jobs across multiple servers
Just like Hadoop
What are the 4 computing layers that a cloud system is divided into? (think SaaS, IaaS, PaaS, HaaS)
Application - Web services
Platform - Software framework, Databases
Infrastructure - VMs, Blob Storage
Hardware - CPU, Memory, Disk