Domanda

Teoricamente, si può definire un protocollo in cui una macchina esegue alcune chiamate remote su un'altra macchina (o più di una) e dove in qualsiasi parte del processo, se una qualsiasi macchina (o operazione) fallisce, o la comunicazione scende, tutto viene ripristinato? (proprio come i database possono)

Lo chiedo, poiché a livello hardware si dice sempre che non si possono fare operazioni atomiche (un ingrediente molto importante delle transazioni) senza un'operazione di processore atomico (test e set).

Ma dal momento che stiamo parlando di più macchine, questo non vola.

Ad esempio, come sarebbe difficile: supponiamo che io abbia un protocollo per emettere un comando su una macchina remota e ottenere una risposta. È possibile che venga chiamato il metodo, ma durante il transito della risposta, la connessione muore. Potrebbe quindi anche essere che la macchina che ha eseguito l'operazione pensa che tutto sia andato bene, ma la macchina ricevente non ha mai ottenuto la risposta.

L'aggiunta di Ack non aiuta poiché anche gli ack potrebbero andare persi durante il trasporto.

Interessato a leggere i pensieri degli altri (e apprendere che alcuni professori 27 anni fa probabilmente avevano già trovato una soluzione solida come una roccia).

R

È stato utile?

Soluzione

Sì, questo problema è stato (più o meno) già risolto :)

Quello che stai cercando è il protocollo di commit in due fasi .

  

Nell'elaborazione delle transazioni, database,   e reti di computer, il bifase   il protocollo di commit (2PC) è un tipo di an   protocollo di impegno atomico. È un   algoritmo distribuito che coordina   tutti i processi a cui partecipano   una transazione atomica distribuita su   se impegnarsi o interrompere (ripristinare)   la transazione. Il protocollo raggiunge   il suo obiettivo anche in molti casi di sistema   fallimento (che coinvolge entrambi i processi,   nodo di rete, comunicazione, ecc.   fallimenti), ed è quindi ampiamente   utilizzato.

Altri suggerimenti

Sembra i problemi standard della distribuzione.

Leggi Informatica distribuita: Principi, algoritmi e Sistemi e poni nuovamente la domanda;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top