Lessico IT › Database › 2PC (commit a due fasi)

2PC (commit a due fasi)

Database Svenska → Aggiornato: 2026-10-01

Two-Phase Commit, il classico protocollo di commit distribuito. Fase 1: il coordinatore invia PREPARE a tutti i partecipanti, che rispondono Sì/No. Fase 2: se tutti hanno risposto Sì → COMMIT a tutti; se anche uno solo ha risposto No → ABORT a tutti.

Garantisce l'atomicità tra più partecipanti. Il problema principale è che è un protocollo bloccante: se il coordinatore cade dopo PREPARE ma prima di COMMIT, i partecipanti restano bloccati (con i lock mantenuti) e il recupero richiede il ripristino del coordinatore e un protocollo complesso. Prestazioni: 2 round trip di rete per commit più un fsync per fase. Alternative moderne: 3PC (Three-Phase Commit, che affronta il blocco ma accetta una minore disponibilità), Paxos/Raft (basati sul consenso), Saga (niente atomicità, si compensa). I database distribuiti (Spanner, CockroachDB) usano internamente un 2PC ottimizzato.

← Torna al lessico