Lecture 1: Introduction Flashcards

1
Q

Distributed Systems

A

A set of cooperating computers communicating over a network to achieve a coherent task. Examples include storage for big websites, big data computations like MapReduce, and peer-to-peer file sharing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Decentralization

A

The absence of a central server in a system, where each node acts as both a client and a server. This can lead to increased robustness and fault tolerance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Fault Tolerance

A

The ability of a system to continue operating properly in the event of failure of one or more components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Registers

A

The fastest form of storage directly built into the CPU. Registers store small amounts of data and instructions being processed by the CPU, enabling nearly instantaneous access.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nonvolatile Memory

A

Storage medium that retains data even when power is turned off, such as NAND flash memory used in SSDs and USB drives. Offers faster read and write speeds compared to traditional magnetic and optical storage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Symmetric Multiprocessing (SMP)

A

Multiprocessor system architecture where all processors are treated equally and share access to all system resources, including memory and I/O devices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Asymmetric Multiprocessing (AMP)

A

Multiprocessor system architecture where one processor is designated as the master and controls the system, while the other processors act as subordinate processors and perform specialized tasks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Observer Pattern

A

Design pattern where an object, known as the subject, maintains a list of its dependents, called observers, and notifies them of any state changes, enabling them to react accordingly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Name two common approaches to achieving fault tolerance in distributed systems.

A

Two common approaches are availability, where the system continues to operate despite certain failures, and recoverability, where the system can recover from failures and resume normal operation after repairs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are some tools used for achieving fault tolerance in distributed systems?

A

Non-volatile storage, such as hard drives or flash drives, is commonly used to store checkpoints or logs of system state to recover from failures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does scalability relate to fault tolerance in distributed systems?

A

Scalability allows distributed systems to handle failures by adding more resources or nodes to compensate for failures, maintaining performance despite disruptions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is fault tolerance, and why is it important in distributed systems?

A

Fault tolerance is the ability of a system to continue operating properly in the event of failure of one or more components. It’s crucial in distributed systems due to the inherent complexity and potential for failures in large-scale deployments.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some implementation topics commonly encountered in distributed systems?

A

Common implementation topics include remote procedure call (RPC), threads, and concurrency control mechanisms like locks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the main infrastructure components in distributed systems?

A

The main infrastructure components are storage, communication, and computation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are some examples of distributed systems applications?

A

Examples include storage for big websites, big data computations such as MapReduce, and peer-to-peer file sharing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the core concept of distributed systems?

A

The core concept of distributed systems is a set of cooperating computers communicating over a network to achieve a coherent task.

17
Q

What are some reasons for building distributed systems?

A

Reasons include achieving high performance through parallelism, fault tolerance, handling naturally distributed problems, and achieving security through isolation.

18
Q

Describe the scalability challenge in distributed systems.

A

Scalability refers to the ability to handle increasing workload or data by adding resources. The challenge lies in ensuring that adding resources results in proportional performance improvements.

19
Q

How do partial failures differ from complete failures in distributed systems?

A

Partial failures occur when some components of the system stop working while others continue, whereas complete failures involve the entire system becoming inoperative.

20
Q

What is the role of threads in distributed systems?

A

Threads are used for concurrent programming in distributed systems to harness multi-core CPUs and structure concurrent operations to simplify programming.

21
Q

Explain the concept of recoverability in fault tolerance.

A

Recoverability refers to the system’s ability to resume normal operation after a failure, typically by saving state information and restoring it when the failure is resolved.

22
Q

What is the significance of non-volatile storage in fault tolerance?

A

Non-volatile storage allows systems to store critical state information persistently, enabling them to recover from failures by restoring the system’s previous state.

23
Q

How do distributed systems address the challenge of network failures?

A

Distributed systems often incorporate redundancy and error-handling mechanisms to mitigate the impact of network failures, such as replicating data or employing routing protocols.

24
Q

What are the primary goals of building abstractions in distributed systems?

A

The goals are to simplify the interface for applications, hide the distributed nature of the underlying infrastructure, and enable easier development of distributed applications.

25
Q

How do distributed systems handle the challenge of concurrency?

A

Concurrency in distributed systems is managed using techniques like thread synchronization, locks, and distributed algorithms to ensure consistency and prevent race conditions.

26
Q

What is a common scalability issue when dealing with web servers and databases?

A

The bottleneck often shifts from web servers to databases as the number of web servers increases, requiring careful design to maintain performance.

27
Q

What is the significance of non-volatile storage in fault tolerance?

A

Non-volatile storage allows systems to recover from failures by storing checkpoints or logs of system states.

28
Q

What is the primary challenge in managing replicated copies for fault tolerance?

A

The challenge is ensuring that replicas stay in sync and do not drift apart.

29
Q

What is consistency in the context of distributed systems?

A

Consistency refers to ensuring that all nodes in a distributed system have the same view of the data at any given time.

30
Q

Why is consistency challenging in distributed systems with replication?

A

Replication introduces the risk of inconsistency due to delays in updating replicas and the possibility of concurrent updates.