4) Quali
problemi di affidabilità per malfunzionamenti esistono nelle RPC? Con
quali semantiche si affrontano?
- perdita di messaggio di richiesta o di risposta
- crash del nodo servitore.
- crash del nodo del servitore.
Prima di fornire la risposta il cliente
può:
- aspettare per sempre.
- time-out e riportare una eccezione al cliente.
- time-out e ritrasmettere (ma solo se l’operazione è
idempotente)
Semantica:
- may-be: time-out per il cliente.
- at-least-once: time-out e ritrasmissioni.
- at-most-once: tabelle delle
azioni effettuate che non permette la ripetizione dell’azione.
- exactly-once: l'azione viene
comunque fatta fino alla fine.
crash del nodo del cliente:
- sterminio: ogni orfano risultato
di un crash viene distrutto.
- terminazione a tempo: ogni calcolo ha una scadenza,
oltre la quale è automaticamente abortito.
- reincarnazione (ad epoche):
tempo diviso in epoche; tutto ciò che è relativo alla epoca
precedente è obsoleto.