final flashcards

1
Q

RPC Compiler (rpcgen):

A

This is a crucial tool within the Sun RPC package. It automates the generation of client and server stubs, saving developers significant time and effort.

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

Sun RPC, understand the general mechanism for creating client and
server stub routines using rpcgen

A

Sun RPC (Remote Procedure Call) is a mechanism that allows programs to call procedures in other address spaces remotely. It enables distributed computing by allowing a program to execute code on another machine as if it were local.
RPC uses a client-server model where the client program calls procedures located on a remote server.
The RPC compiler, rpcgen, automatically generates client and server stub routines from a specification file (.x file) that describes the remote procedures, their parameters, and their return types.
The generated client and server stubs handle the marshalling (serialization) and unmarshalling (deserialization) of parameters and results, as well as the communication over the network.

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

what is XDR

A

(eXternal Data Representation):

XDR is a standard for serializing data for transmission between different computer architectures. It provides a platform-independent way to represent data structures.
Sun RPC uses XDR for encoding data passed between client and server stubs. XDR supports basic data types such as integers, floats, and strings, as well as user-defined structures.
When you define remote procedures in an .x file, you specify the data types of their parameters and return values using XDR data types.

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

Know generally how parameters are passed and results are returned.

A

Sun RPC allows remote procedures to have a single parameter and a single return value. If you need to pass multiple parameters or return multiple values, you can use structures.
Parameters are marshalled into a format suitable for transmission over the network by the client stub before being sent to the server.
The server stub unmarshals the parameters, executes the procedure, marshals the return value, and sends it back to the client.
Extra care must be taken when dealing with pointers or complex data structures to ensure that they are properly serialized and deserialized.

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

Know how the port mapper daemon process is used.

A

The port mapper daemon (rpcbind or portmap) is a system service that maps program numbers to network ports.
When a server program starts, it registers its program number and version with the port mapper on the local machine.
When a client program wants to call a remote procedure, it contacts the port mapper on the server’s machine to obtain the port number associated with the server’s program number and version.
This allows the client to connect to the correct port on the server to make the remote procedure call.

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

Understand how the use of UDP and TCP affects the Sun RPC mechanism.

A

Sun RPC supports both UDP (User Datagram Protocol) and TCP (Transmission Control Protocol) for communication between client and server.
UDP is connectionless and provides fast, lightweight communication suitable for stateless protocols. It is the default choice for Sun RPC.
TCP is connection-oriented and provides reliable, ordered communication suitable for protocols that require guaranteed delivery of data.
When creating the client handle, you can specify whether to use UDP or TCP for communication. This choice affects how the client communicates with the server.

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

XDR (eXternal Data Representation):

A

Sun RPC utilizes XDR to represent the data exchanged between client and server stubs. XDR ensures that data can be transferred seamlessly across different architectures, which is vital in distributed computing environments.

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

Built-in Representation for Basic Types:

A

Sun RPC offers built-in support for fundamental data types like integers (int), floating-point numbers (float), and characters (char). This simplifies the handling of common data types in distributed applications.

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

Declarative Language for Complex Data Types

A

In addition to basic types, Sun RPC provides a declarative language for specifying complex data structures. This allows developers to define custom data types and their serialization/deserialization processes, enabling efficient communication between distributed components.

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

Parameter Passing

A

Sun RPC, parameter passing refers to how arguments are transmitted from the client to the server and how results are returned. Sun RPC allows only a single argument to be passed and received per procedure call. If multiple parameters are needed, they must be grouped into a structure. This restriction simplifies the communication protocol and ensures interoperability across different platforms.

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

Binding:

A

Binding in Sun RPC is the process of establishing a connection between the client and server. This is done through the port mapper daemon process, which maps remote procedure call (RPC) program numbers to network addresses. The client needs to know the name of the remote server to initiate the binding process and communicate with the appropriate RPC service.

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

Transport Protocol:

A

Sun RPC supports two transport protocols: User Datagram Protocol (UDP) and Transmission Control Protocol (TCP). UDP is connectionless and provides a lightweight, unreliable communication mechanism suitable for applications where speed is prioritized over reliability. TCP, on the other hand, offers reliable, connection-oriented communication, ensuring that data is delivered correctly and in order. The choice of transport protocol depends on factors such as the reliability requirements and network conditions of the application.

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

Exception Handling:

A

Exception handling in Sun RPC depends on the transport protocol being used. In UDP, if the client does not receive a response from the server within a certain timeout period, it resends the request. This mechanism helps mitigate packet loss and network congestion. However, in TCP, if an error occurs during communication, such as a network failure or server crash, the client does not resend the request. Instead, it handles the error locally or informs the user accordingly.

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

Data Representation

A

Sun RPC uses eXternal Data Representation (XDR) to encode and decode data transmitted between the client and server. XDR provides a standardized format for representing data types, ensuring compatibility across different architectures and programming languages. It defines a set of rules for encoding basic data types, such as integers and strings, as well as structures and arrays. This enables seamless communication between heterogeneous systems in distributed computing environments

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

Remote Procedure Call (RPC)

A

A mechanism that allows a program to execute code on another remote machine as if it were a local procedure call.

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

rpcgen:

A

A tool used to generate client and server stub routines for RPC programming.

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

Client Stub

A

A client-side proxy for a remote procedure, responsible for marshalling parameters, making the RPC call, and unmarshalling results.

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

Server Stub

A

A server-side proxy for a remote procedure, responsible for receiving RPC requests, unmarshalling parameters, invoking the actual procedure, and marshalling results.

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

XDR (External Data Representation)

XDR (External Data Representation)

A

A standard for encoding and decoding data structures in a platform-independent format, used for data serialization in RPC.

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

TCP (Transmission Control Protocol):

A

A connection-oriented transport protocol that ensures reliable and ordered delivery of data.

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

UDP (User Datagram Protocol)

A

A connectionless transport protocol that provides fast but unreliable communication.

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

Port Mapper Daemon

Port Mapper Daemon

A

A process responsible for mapping RPC program numbers to network addresses, facilitating communication between clients and servers.

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

Authentication

Authentication

A

The process of verifying the identity of clients and servers in an RPC communication, ensuring secure interactions.

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

AUTH_NULL:

A

An authentication mechanism in Sun RPC that provides no authentication

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

AUTH_SYS

A

An authentication mechanism in Sun RPC that uses Unix credentials for authentication.

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

AUTH_DES

A

An authentication mechanism in Sun RPC that employs the Data Encryption Standard (DES) for secure communication.

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

Structure

A

A composite data type in C that allows the bundling of multiple variables under a single name.

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

Timeout

A

A predetermined period within which a client expects to receive a response from the server.

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

Error Handling

A

The process of detecting and responding to errors that occur during RPC communication, ensuring robustness and reliability.

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

Result Returning

A

In RPC, it’s when the server sends back the outcome of the requested procedure to the client, which could be a value, object, or indication of success/failure. It ensures the client receives the executed procedure’s outcome for further actions.

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

Java RMI

A

Java Remote Method Invocation (RMI) is a mechanism in Java that allows objects to invoke methods remotely, facilitating distributed computing.

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

Remote Object Interface

A

This is an interface in Java RMI that extends java.rmi.Remote and declares methods that can be invoked remotely. Methods in this interface must throw RemoteException.

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

Server Side Code

A

This is the implementation of the remote object in Java RMI. It extends UnicastRemoteObject and implements the remote object interface. It provides the actual functionality of the remote object’s methods.

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

Client-Side Code

A

This is the client program in Java RMI that interacts with the remote object. It can perform operations like sending messages to the remote object or invoking its methods.

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

Remote Object Requirements

A

Specifies the requirements for creating a remote object in Java RMI, including extending java.rmi.Remote, declaring methods to throw RemoteException, and registering the object using java.rmi.Naming.

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

Client Requirements

A

Specifies the requirements for the client program in Java RMI, including initializing the RMI security manager and using java.rmi.Naming to retrieve a reference to the remote object.

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

Remote Object Requirements

A

Interface extends java.rmi.Remote.
Interface methods throw java.rmi.RemoteException.
Interface is public.
Interface may extend java.rmi.server.UnicastRemoteObject.
All methods must declare throws RemoteException.
Object registered using java.rmi.Naming.rebind().
Object’s interface and implementation compiled into bytecode.
Client and server stubs generated using rmic.
RMI registry must be running on the server.
Launched with rmiregistry [PORT NUMBER].

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

How to Run a Java RMI

A

Specify Server: You need to tell the client which server to connect to by specifying it in the command line.
Organize Files: Make sure all necessary files are in the same directory on the server, and use the ‘make’ command to compile them.
Repeat for Client: If the client will run on a different machine, repeat the file organization step on the client machine.
Launch RMI Registry: Start the RMI registry on the server machine using the command ‘rmiregistry &’. Remember to stop it when finished.
Launch Remote Object: Run the remote object on the server using the command ‘java RMIExampleImpl’.
Launch Client: Run the client application, either on the same machine or a remote one, using the command ‘java -Djava.security.policy=java.policy RMIClient -m “A Message to send”’. You can see the available options and their descriptions in the RMIClient.java file.

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

Request/Reply Patterns

A

gRPC supports four types of patterns:

Simple RPC
Server Streaming RPC
Client Streaming RPC
Bidirectional Streaming RPC

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

gRPC

A

A remote procedure call framework developed collaboratively by Google and Square, built upon HTTP/2, TLS, and TCP. It encodes remote method identifiers as URIs, request parameters in HTTP messages, and return values in HTTP responses.

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

Protocol Buffers with RPC

A

gRPC utilizes Google’s Protocol Buffer (protobuf) mechanism for defining interfaces and serializing data. Protocol buffer data is structured as messages with name-value pairs called fields, stored in a .proto file

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

Cross-Platform Framework

A

gRPC provides support for multiple languages and platforms, allowing for interoperability.

43
Q

Why use gRPC

A
44
Q

Know the RMI registry process is used similarly to the Sun RPC portmapper.

A

Understand how Java RMI (Remote Method Invocation) works, including the registration of remote objects using the java.rmi.Naming interface, akin to how Sun RPC uses portmapper.

45
Q

Understand the four types of request/reply patterns supported by gRPC

A

Simple RPC, Server Streaming RPC, Client Streaming RPC, and Bidirectional Streaming RPC.

46
Q

Be familiar with the usage of .proto files to define the interface of gRPC routines:

A

These files specify the interface and serialization of data for gRPC routines.

47
Q

Recognize that gRPC is built upon HTTP/2 and TLS

A

It utilizes these protocols for communication.

48
Q

Be familiar with file characteristics observed as part of the work on the
Andrew File System.

A

In distributed file systems like the Andrew File System (AFS), file characteristics play a crucial role in system design and optimization.
Understanding the typical file sizes, access patterns (sequential or random), and lifetimes (temporary or long-lived) helps in designing efficient caching and storage strategies.
For example, in AFS, where most files are small and temporary, client-side caching is heavily utilized to reduce network overhead and improve performance.
Factors such as wide-area networks, peer-to-peer architectures, and mobility influence file system design by introducing challenges like latency, bandwidth constraints, and device heterogeneity.

49
Q

Be familiar with the general approach used by the File Transfer Protocol
(FTP), Sun’s Network File System (NFS), and Andrew File System (AFS) for sharing files between machines.

A

Each file sharing protocol, such as FTP, NFS, and AFS, adopts a different approach to enable file sharing between machines.
FTP provides an interactive way for users to send or fetch files between remote machines, often requiring authentication.
NFS focuses on extending Unix file systems to a distributed environment, offering easy file sharing and compatibility with existing systems.
AFS, developed at CMU, emphasizes scalability and provides a scalable distributed file system with a unified namespace across multiple clients and servers.

50
Q

Be familiar with the naming issue in distributed file systems and how it
relates to access and location transparency.

A

Naming in distributed file systems determines how files are accessed and whether their locations are transparent to users.
FTP typically uses location-dependent naming, where users need to specify the exact location of the file they want to access.
In contrast, NFS and AFS employ location-independent naming, allowing users to access files using a uniform naming scheme regardless of their physical location.
Location transparency ensures that users can access files without needing to know their physical storage location, simplifying file access and management.

51
Q

Know what is involved if files are migrated in each of the three systems.

A

File migration refers to the process of moving files between different file servers or storage locations.
In FTP, file migration requires explicit user intervention, as users need to manually transfer files between machines.
NFS requires clients to update mount points if files are migrated to different servers, ensuring that clients can still access the files at their new location.
AFS supports file migration at a per-volume level, allowing administrators to move entire volumes of files between servers transparently to clients.

52
Q

Directory Handling:

A

Directories play a crucial role in organizing and accessing files in distributed file systems.
FTP typically handles directory operations as remote commands, requiring explicit directory listing and navigation commands from the user.
NFS and AFS adopt Unix-like directory structures, allowing users to navigate directories and access files using familiar commands and conventions.

53
Q

Understand the different types of sharing semantics in distributed file
systems.

A

Sharing semantics define how file updates are visible to other processes or users accessing the same file.
Unix semantics ensure that every file operation is instantly visible to all processes, allowing concurrent access to files with immediate consistency.
Session semantics delay the visibility of file changes until the file is closed, ensuring that other processes see a consistent view of the file during the session.
Immutable files prohibit changes to files, requiring new versions to be created instead of modifying existing files.

54
Q

Know how caching is used in distributed file systems.

A

Caching mechanisms improve performance by storing frequently accessed data closer to the client or user.
Write-through caching ensures that all changes made on the client are immediately written to the server, maintaining consistency at the cost of increased network traffic.
Write-back caching delays writing changes to the server, improving performance by reducing network overhead but risking data loss in case of client failures.
Write-on-close caching combines aspects of write-through and write-back caching by deferring writes until the file is closed, matching session semantics.

55
Q

Know how security is handled in each distributed file system.

A

Security mechanisms control access to files and directories, ensuring that only authorized users can read, write, or execute files.
FTP typically uses account/password authentication to authorize users, with support for anonymous FTP for public file access.
NFS employs RPC Unix authentication and, in version 4, RPCSEC GSS for secure communication using mechanisms like Kerberos.
AFS uses Unix permissions for file-level security and access control lists (ACLs) for directory-level security, ensuring fine-grained control over file access.

56
Q

Understand the implications of a stateful vs. a stateless distributed file
server.

A

Stateful file servers maintain information about clients and file operations, enabling features like file locking and delegation.
FTP and NFS are traditionally stateless, with NFS version 4 introducing some stateful features like file locking and delegation.
AFS is inherently stateful, with servers maintaining information about clients and actively managing file access and caching to optimize performance and consistency.

57
Q

Design Principles and Case Studies:

A

Design principles derived from projects like AFS emphasize scalability, caching, and minimizing system-wide knowledge and changes.
Case studies like the Elephant File System and the Google File System provide insights into innovative approaches to file storage and management, including versioning, metadata management, and fault tolerance.

58
Q

Understand why an organization such as WPI would transition from file
systems to distributed file systems to cloud storage.

A

Organizations like WPI switch to cloud storage for improved collaboration, scalability, and cost-effectiveness.
Cloud storage offers accessibility from anywhere, automatic backups, and integration with productivity tools.

59
Q

Be aware that cloud block storage options exist from various vendors.

A

Cloud block storage, like Amazon EBS or Google Persistent Disks, provides high-speed data processing ideal for databases and virtual machines.

60
Q

Know the cloud file storage options, such as Microsoft OneDrive,
provide file storage with APIs similar to existing file systems

A

Solutions like Microsoft OneDrive or Amazon EFS offer hierarchical file storage with file-level access control, suitable for collaborative work environments.

61
Q

Know that unlike hierarchical directories for files, objects are
stored in a flat namespace of buckets.

A

Cloud object storage organizes data into flat namespaces of buckets, simplifying management.

62
Q

Be aware that cloud object storage options typically use a REST API to
access objects.Know that objects are updated as full objects in contrast to files,
which can be written in anywhere in the file.

A

Cloud object storage typically uses REST APIs for seamless integration with applications.Objects in cloud storage are updated as full objects, unlike traditional file systems where files can be updated at specific locations.

63
Q

Be aware that consistency for shared object contents and access
privileges may exhibit eventual rather than strong consistency.

A

Cloud object storage may have eventual consistency, crucial for applications relying on consistent access.

64
Q

UnixFS

A

A file system commonly used in Unix-based operating systems like Linux. It organizes data on disk into files and directories, providing a hierarchical structure for storing and accessing data.

65
Q

ext4 (Fourth Extended File System)

A

A modern file system developed for Linux. It offers improvements over previous versions, including support for larger file sizes and more efficient storage allocation..

66
Q

NTFS (New Technology File System):

A

A proprietary file system developed by Microsoft for Windows operating systems. It provides features such as file permissions, encryption, and disk quotas.

67
Q

GFS (Google File System):

A

A distributed file system developed by Google for storing and managing large volumes of data across multiple servers. It provides high availability, scalability, and fault tolerance for handling big data workloads.

68
Q

HDFS (Hadoop Distributed File System):

A

A distributed file system designed for use with the Apache Hadoop framework. HDFS is optimized for storing and processing large datasets in parallel across clusters of commodity hardware.

69
Q

Amazon Elastic Block Store (EBS)

A

A block storage service provided by Amazon Web Services (AWS) for use with Amazon Elastic Compute Cloud (EC2) instances. It offers persistent block-level storage volumes that can be attached to EC2 instances.

70
Q

Azure Disk Storage:

A

Microsoft Azure’s block storage service, providing durable and high-performance storage for Azure virtual machines. It supports both SSDs and HDDs and offers features like encryption and snapshots.

71
Q

Google Cloud Persistent Disks:

A

Google Cloud’s block storage service, offering durable and scalable storage for virtual machine instances running on Google Compute Engine. It provides both standard and SSD-based persistent disks.

72
Q

Microsoft OneDrive:

A

A cloud-based file hosting service provided by Microsoft as part of the Office 365 suite. It allows users to store and sync files across devices, collaborate on documents, and access files from anywhere with an internet connection.

73
Q

Amazon Elastic File Systems (EFS):

A

A scalable and fully managed file storage service provided by AWS. It is designed to provide scalable and shared file storage for use with AWS cloud services and on-premises resources.

74
Q

Google Drive:

A

Google’s cloud-based file storage and synchronization service. It allows users to store files in the cloud, synchronize files across devices, and share files with others.

75
Q

Amazon Simple Storage Service (S3):

A

A scalable object storage service provided by AWS for storing and retrieving data. It is designed for durability, availability, and scalability, making it suitable for a wide range of use cases, including backup, archival, and data lakes.

76
Q

Azure Blob Storage:

A

Microsoft Azure’s object storage service, offering scalable and cost-effective storage for unstructured data. It is optimized for storing large amounts of data, such as images, videos, and documents.

77
Q

Google Cloud Storage

A

Google Cloud’s object storage service, providing durable and highly available storage for objects of any size. It offers features like versioning, lifecycle management, and fine-grained access control.

78
Q

Latency

A

Latency refers to the delay between an action and its effect in a system.

Importance: In networked games, latency can impact player responsiveness and overall gameplay experience.

79
Q

Network Transmission:

A

The time taken to send data across a network.

80
Q

Know how latency is important for networked games and how it is handled.

A

Latency in networked games can degrade responsiveness for players.

Sources of latency include software loops, network transmission, propagation, processing, and queueing.

Compensating for latency can be done through player prediction and client-side playout buffering.

Handling Latency in Networked Games
Player prediction involves sending user input to the server, determining local game state, rendering scenes, and fixing discrepancies.

Client-side playout buffering allows for picking buffer sizes to reduce variation but may increase latency.

Time delay can improve fairness in games but can also delay all players based on the highest latency.

81
Q

Eventual Consistency

Eventual Consistency

A

A consistency model used in distributed systems where updates to shared data eventually propagate to all nodes, ensuring that all replicas converge to the same value over time, though not immediately.

82
Q

Understand the workstation system model.

A

In the workstation model, each user has their own computer, and computing resources can be shared among users.
Idle machines are expected because not all users are continuously using their computers, leading to opportunities for load sharing.
During off-peak hours, some computers in an office remain unused.

83
Q

Understand why it is expected that idle machines will be available in the
workstation model leading to opportunities for load sharing.

A

Load can be measured by various metrics such as CPU queue length, CPU utilization, memory usage, file system usage, etc.
Idleness can be determined by factors such as the absence of user activity (no user logged on), low CPU utilization, screen saver activated, etc.

84
Q

Understand how load and idleness can be determined on a machine.

A
85
Q

Understand the difference between load sharing and load balancing.

A

Load sharing involves distributing tasks or processes among multiple machines to utilize resources efficiently.
Load balancing focuses on evenly distributing the workload across machines to optimize resource usage and maintain system performance. Load sharing is like assigning different tasks to members of a team, while load balancing is like ensuring each member of the team has an equal amount of work.

86
Q

Understand the distinction between a preemptive and non-preemptive load
sharing policy.

A

Preemptive load sharing allows tasks to be migrated from one machine to another during execution, even if the task has not completed.
Non-preemptive load sharing waits for tasks to finish executing before considering migration.Preemptive policy is like interrupting someone’s work to give them a new task, while non-preemptive policy is like waiting for someone to finish their current task before assigning them a new one.

87
Q

Know what the transfer policy of a load sharing policy does.

A

Transfer policy decides when to transfer a task from one machine to another based on certain criteria like load threshold. In a team project, transfer policy decides when to assign a task,

88
Q

Know what the selection policy of a load sharing policy does.

A

Selection policy determines which task to transfer, considering factors such as task duration or potential benefits of migration.In a team project selection policy determines which team member should handle the task

89
Q

Know what the location policy of a load sharing policy does.

A

Location policy determines which node to transfer the task to, often based on load or proximity.
Information policy dictates when to collect system state information, which can be demand-driven, periodic, or state-change-driven.In a team project location policy specifies where the task should be completed.

90
Q

Know what the information policy of a load sharing policy does.

A

Information policy dictates when to collect system state information, which can be demand-driven, periodic, or state-change-driven.in a team project information policy dictates when progress updates should be provided.

91
Q

Know the difference between a sender-initiated and receiver-initiated load
sharing policy.

A

Sender-initiated policies involve the sender deciding when and where to transfer tasks.
Receiver-initiated policies involve idle nodes searching for tasks to execute, potentially leading to preemptive transfers.Sender-initiated policy is like a manager assigning tasks to team members, while receiver-initiated policy is like team members volunteering to take on tasks.

92
Q

Be familiar with receiver-initiated approaches such as SETI,
distributed.net or the Distriblets project.

A
93
Q

Be familiar with the highlights of the adaptive load sharing policies of
Eager, Lazowska and Zahorjan.

A

Adaptive load sharing policies, such as those proposed by Eager, Lazowska, and Zahorjan, dynamically adjust to changing system conditions to optimize resource usage.
These policies aim to strike a balance between simplicity, overhead, and responsiveness to avoid instability and excessive computational costs.

94
Q

Be familiar with the highlights of the multicast-based load sharing
policies of Wills and Finkel.

A

Multicast-based load sharing policies leverage multicast communication to efficiently distribute tasks among nodes in a distributed system.
Policies like Multithresh and Multileader aim to balance the workload across nodes while minimizing overhead and ensuring responsiveness.

95
Q

Understand how the Map-Reduce Model and Implementation works.

A

The MapReduce model is a programming paradigm for processing and generating large datasets in parallel across a distributed cluster.
It involves two main functions: map, which processes key/value pairs to generate intermediate results, and reduce, which aggregates and combines intermediate results for final output.
Hadoop is a popular open-source implementation of the MapReduce model, designed to handle large-scale data processing tasks across a distributed cluster using the Hadoop Distributed File System (HDFS) for storage and fault tolerance.

96
Q

Know approaches for distributing incoming requests to a cloud
computing cluster.

A

Cloud computing load balancing techniques, such as Round Robin, IP Hash, Least Connections, Least Response Time, Least Bandwidth, Layer 4 Load Balancers, and Layer 7 Load Balancers, aim to evenly distribute incoming requests among servers in a cloud environment based on various criteria such as server load, response time, or network bandwidth.

97
Q

Know how the “happened before” relationship is used by Lamport to construct a partial ordering amongst causally related events in a distributed system

A

Lamport’s paper introduces the concept of the “happened before” relationship to establish a partial ordering of events.
Events are partially ordered based on three conditions: event a precedes event b within the same process, event a is the sending of a message and event b is the receipt of that message by another process, and the relationship is transitive.
This partial ordering allows for establishing causality between events in a distributed system.

98
Q

Know how this relationship can be used to construct a logical clock of e

A

Logical clocks, as proposed by Lamport, assign timestamps to events in a distributed system to establish a partial ordering.
Each process increments its logical clock between successive events, and messages contain timestamps.
Upon receiving a message, the recipient updates its logical clock to ensure that events maintain the partial ordering based on the “happened before” relationship.
Logical clocks provide a means of establishing a consistent ordering of events across distributed processes.

99
Q

Be familiar with the implications of clock drift (skew):

A

Clock drift refers to the discrepancy between the time reported by different clocks in a distributed system due to inaccuracies or variations in clock rates.
Clock skew occurs when clocks deviate from real time due to factors like temperature variations or hardware limitations.
Clock synchronization algorithms aim to minimize clock drift and skew to ensure accurate timekeeping across distributed systems.

100
Q

Understand how Cristian’s algorithm is used by a client to obtain the correct time from a server and adjust its own time:

A

Cristian’s algorithm allows a client to synchronize its clock with a time server in a distributed system.
The client sends a request to the server, which replies with its current time.
The client adjusts its own clock based on the round-trip time of the message and the difference between the server’s time and the client’s time when the message was sent.
This algorithm provides a simple method for clock synchronization but may encounter issues like clock granularity and network delays

101
Q

Be familiar with other clock synchronization approaches:

Be familiar with other clock synchronization approaches:

A

Other clock synchronization approaches include the Berkeley algorithm, which involves a time server periodically broadcasting the network time to all nodes, and averaging algorithms, which use decentralized methods to synchronize clocks across the system.

102
Q

Understand distributed, centralized and token-based mutual exclusion algorithms:

A

Distributed mutual exclusion algorithms, such as Lamport’s algorithm or Ricart-Agrawala’s algorithm, allow processes to coordinate access to shared resources in a distributed system without a central authority.
Centralized algorithms rely on a single coordinator to manage access to shared resources, while token-based algorithms use a token passed between processes to control access.

103
Q

Understand approaches for distributed election algorithms:

A

Distributed election algorithms, like the Bully algorithm or ring-based algorithms, are used to elect a leader or coordinator process in a distributed system.
These algorithms ensure that a unique process is selected to perform a specific role, even in the presence of multiple processes attempting to initiate an election.

104
Q
A