What are the 8 big fallacies (irrtümer/falschannahmen) of distributed sysetms?
network is reliable
latency is zero
bandwidth is infinite
network is secure
topology does not change
there is one administrator
transport cost is 0
network is homogenous
What are procedure calls?
More or less function calls but without return value
What are remote procedure calls ? (RPC)
Mechanism in distributed systems that extends local procedure calls
-> allows two processes to communicate either locally or remotely
-> presimes of low-level tgransport protocols (TCP/IP or UDP)
How do RPC work?
client invokes RPC and passes arguments with it if required
arguments passed to remote procedure on other system (e.g. server)
client awaits response
What is gRPC?
high performance widely deployed RPC framework
platform independent
applicable in almost all distributed systems computing use-cases
What is the structure of gRPC?
RPC Client and server between the actual client and server
-> client invocates method stub
-> arguments are marshalled (convert datatypes etc. so that arguments are understood by callee) by RPC client and sent to RPC server
RPC server unmarshalls information (to put in correct required format) and forwareds to server to perform procedure
RPC server receives result and marshalls it
Sends to RPC client that unmarshals it an dreturns it to the client…
What is IDL?
Interface Definition Language
-> language independent type signatures of functions
=> allows to create signauters that allow comunication between arbitrary languages…
=> example is e.g. JSON…
Advantages IDL
developers can automatically generate code for marshaling/unmarshaling
and RPC stubs
=> for their respective programming languages…
What is marshalling?
transform memory representation of object (e.g. integer) to a representation that can be used to transport the informatino over e.g. the internet
=> e.g. XML, JSON,…
What is protobuf?
serialization / marshaling format (e.g. like xml but smaller and faster…)
message format in
language neutral
platform neutral
extensible format
used in gRPC
What are some common error conditions in RPC?
network data loss resulting in retransmission
-> operations are incorrect when data is received multiple times…
server process crashes during RPC operation
before completing its task -> client retrues requres
after completing task and before responding -> recovery for a consistent state
client process crarhes before receiving response
client restarted, server discards response data
Last changed2 years ago