RPC Flashcards
RPC
Remote Procedure Call - a program causes a procedure/subroutine to execute in a different address space or a different system
What does RPC use under the hood
Sockets
Marshalling/Serialization
Converting input parameters to a bytestream in RPC
Unmarshalling/Deserialization
Converting from bytestream to function return value
What happens if a pointer is passed to an RPC function
The data that is pointed to is convertion into a bytestream
Local functions when called have what semantics
Exactly once - the function will be executed exactly once, this is not necessarily the case for remote functions
RPC library mechanisms to ensure function is run correctly
Retransmission of requests (RR)
Duplicate filtering (DF)
Re-execution/re-transmission of request (RE)
Idempotent functions
Re-execution resistant functions, i.e. given the same input the output is always the same no matter how many times the function is executed
Semantics with no RR
Maybe (sometimes works, other times doesn’t)
Semantics with RR and no DF
At least once