DISTRIBUTED SYSTEMS EXAM QUESTIONS AND
100% VERIFIED ANSWERS
Basics of Distributed Systems - ANSWER [Section]
What are the Fallacies of Distributed Computing? - ANSWER - Network is
Reliable
It ain't
- Network is Secure
sup zucc & nsa
- Network is Homogeneous
why do they still have machines with <4GB RAM is that legal
- Topology doesn't change
Lightning struck a telephone pole again
- No Latency
Inting Singed probs has 300 ping
- Infinite Bandwidth
Why can't we stream 15 4K movies wtf
- No Transport Cost
How much did you spend on Data this month?
- One Administrator
wtf bell is dropping my league packets
What are our Design Goals with a Distributed System? - ANSWER - Easy
sharing of resources
Share machine time and/or storage across a network in some way (CDNs,
dropbox, AWS, etc)
- Providing the right transparencies for our use case
There is a tradeoff because adding transparencies can impose unnecessary
restrictions on the system
- Openness to interaction with other systems
We want other systems to be able to interact with us via a clean API so we can
extend or modify our implementation and be used in a variety of contexts
- Scalability along whatever axis are necessary
Often need to scale size of system capabilities, may need additional types of
scalability to handle system requirements
,What's the point of the Single System Image concept? - ANSWER It allows
reasoning about a distributed system as a single computer, such that each
machine can act entirely independent of any other machine with respect to
making decisions.
What are the 7 transparencies? (Push yourself to name 3 in detail) - ANSWER
- Access
Hide data access methods and the exact representation
- Location
Hide where the data is
- Relocation
Hide when the data moves around
- Migration
Hide whether or not the data can move around
- Replication
Hide whether or not data is in multiple places
- Concurrency
Hide how many users are accessing data at a given point in time
- Failure
Hide failure states of operations involving data
Middleware & stuff - ANSWER [Section]
What does Middleware refer to? - ANSWER A common set of interfaces
accessible on each machine that allows communication and provides
transparencies.
What are some types of scaling? - ANSWER - Number of users (Size)
Concerned mostly with how to handle higher QPS, main need to decentralize
system
- Distance between Nodes (Geographic)
Gives resiliency in the face of localized failures due to unforeseen
circumstances, but introduces higher latency
- Number of Administrative Domains (Administrative)
Removes dependency on monopolistic tendencies or administrative
disagreements, but different administrators means a variety of constraints to be
worked around
, What are the high level ways to distribute applications logically? - ANSWER -
Multi-Tier (1,2,3 layers of UI, App, Data)
- Vertical (split functionality)
- Horizontal (split data)
- P2P (Each node is client _and_ server)
How do you lower probability of failure? - ANSWER Removing single points
of failure can drastically reduce the likelihood that your system is unavailable at
any point in time (can do some ez stats to show this)
What is the tradeoff between availability and distribution? - ANSWER
Distributing across more nodes usually means reducing the redundancy of your
system, which lowers the probability it will be available as discussed above
What is the CAP theorem? - ANSWER Consistency, Availability, Partition
A given system can satisfy at most 2 of these
What does the glue metaphor mean? - ANSWER Middleware makes it so that
the resources encapsulated by any particular node can be treated by other nodes
as if they are part of a single system image - thus it is the 'glue' sticking the
nodes together into said conceptual image.
What are some pros and cons of using middleware? - ANSWER Pros:
- Provides an abstraction around access models so we can hide implementation
details / achieve transparencies
- Isolate programmer from OS
- Gives us a convenient place to implement some set of transparencies
Cons:
- Hard to implement generic perfect middleware
- Every transparency you implement imposes additional restrictions on the
system
3 types of distributed systems - ANSWER - High performance distributed
computing systems (eg. parallel GPU programs)
- Distributed information systems (eg. systems where there is data to be
exchanged)
- Distributed systems for pervasive computing (eg. IoT environments)
100% VERIFIED ANSWERS
Basics of Distributed Systems - ANSWER [Section]
What are the Fallacies of Distributed Computing? - ANSWER - Network is
Reliable
It ain't
- Network is Secure
sup zucc & nsa
- Network is Homogeneous
why do they still have machines with <4GB RAM is that legal
- Topology doesn't change
Lightning struck a telephone pole again
- No Latency
Inting Singed probs has 300 ping
- Infinite Bandwidth
Why can't we stream 15 4K movies wtf
- No Transport Cost
How much did you spend on Data this month?
- One Administrator
wtf bell is dropping my league packets
What are our Design Goals with a Distributed System? - ANSWER - Easy
sharing of resources
Share machine time and/or storage across a network in some way (CDNs,
dropbox, AWS, etc)
- Providing the right transparencies for our use case
There is a tradeoff because adding transparencies can impose unnecessary
restrictions on the system
- Openness to interaction with other systems
We want other systems to be able to interact with us via a clean API so we can
extend or modify our implementation and be used in a variety of contexts
- Scalability along whatever axis are necessary
Often need to scale size of system capabilities, may need additional types of
scalability to handle system requirements
,What's the point of the Single System Image concept? - ANSWER It allows
reasoning about a distributed system as a single computer, such that each
machine can act entirely independent of any other machine with respect to
making decisions.
What are the 7 transparencies? (Push yourself to name 3 in detail) - ANSWER
- Access
Hide data access methods and the exact representation
- Location
Hide where the data is
- Relocation
Hide when the data moves around
- Migration
Hide whether or not the data can move around
- Replication
Hide whether or not data is in multiple places
- Concurrency
Hide how many users are accessing data at a given point in time
- Failure
Hide failure states of operations involving data
Middleware & stuff - ANSWER [Section]
What does Middleware refer to? - ANSWER A common set of interfaces
accessible on each machine that allows communication and provides
transparencies.
What are some types of scaling? - ANSWER - Number of users (Size)
Concerned mostly with how to handle higher QPS, main need to decentralize
system
- Distance between Nodes (Geographic)
Gives resiliency in the face of localized failures due to unforeseen
circumstances, but introduces higher latency
- Number of Administrative Domains (Administrative)
Removes dependency on monopolistic tendencies or administrative
disagreements, but different administrators means a variety of constraints to be
worked around
, What are the high level ways to distribute applications logically? - ANSWER -
Multi-Tier (1,2,3 layers of UI, App, Data)
- Vertical (split functionality)
- Horizontal (split data)
- P2P (Each node is client _and_ server)
How do you lower probability of failure? - ANSWER Removing single points
of failure can drastically reduce the likelihood that your system is unavailable at
any point in time (can do some ez stats to show this)
What is the tradeoff between availability and distribution? - ANSWER
Distributing across more nodes usually means reducing the redundancy of your
system, which lowers the probability it will be available as discussed above
What is the CAP theorem? - ANSWER Consistency, Availability, Partition
A given system can satisfy at most 2 of these
What does the glue metaphor mean? - ANSWER Middleware makes it so that
the resources encapsulated by any particular node can be treated by other nodes
as if they are part of a single system image - thus it is the 'glue' sticking the
nodes together into said conceptual image.
What are some pros and cons of using middleware? - ANSWER Pros:
- Provides an abstraction around access models so we can hide implementation
details / achieve transparencies
- Isolate programmer from OS
- Gives us a convenient place to implement some set of transparencies
Cons:
- Hard to implement generic perfect middleware
- Every transparency you implement imposes additional restrictions on the
system
3 types of distributed systems - ANSWER - High performance distributed
computing systems (eg. parallel GPU programs)
- Distributed information systems (eg. systems where there is data to be
exchanged)
- Distributed systems for pervasive computing (eg. IoT environments)