banner
Centro notizie
Prezzo di fabbrica competitivo e ottima qualità

Come viene implementato il Precision Time Protocol a Meta

Mar 21, 2023

L'implementazione del Precision Time Protocol (PTP) presso Meta ci consente di sincronizzare i sistemi che guidano i nostri prodotti e servizi fino alla precisione del nanosecondo. Il predecessore di PTP, Network Time Protocol (NTP), ci ha fornito una precisione al millisecondo, ma mentre passiamo a sistemi più avanzati nel tentativo di costruire la prossima piattaforma informatica, il metaverso e l'intelligenza artificiale, dobbiamo garantire che i nostri server mantengano il tempo come in modo accurato e preciso possibile. Con il PTP in atto, saremo in grado di migliorare le tecnologie e i programmi di Meta, dalle comunicazioni e produttività all'intrattenimento, alla privacy e alla sicurezza, per tutti, attraverso i fusi orari e in tutto il mondo.

Il viaggio verso il PTP è durato anni, poiché abbiamo dovuto ripensare al modo in cui l'hardware e il software di cronometraggio funzionano all'interno dei nostri server e data center.

Condividiamo un approfondito approfondimento tecnico sulla nostra migrazione PTP e sulle innovazioni che l'hanno resa possibile

Prima di approfondire l'architettura PTP, esploriamo un semplice caso d'uso per un timing estremamente accurato, a scopo illustrativo.

Immagina una situazione in cui un client scrive dati e tenta immediatamente di leggerli. Nei grandi sistemi distribuiti, è molto probabile che la scrittura e la lettura arrivino su nodi back-end diversi.

Se la lettura colpisce una replica remota che non dispone ancora dell'ultimo aggiornamento, è possibile che l'utente non veda la propria scrittura:

Ciò è quantomeno fastidioso, ma ancora più importante è che ciò viola una garanzia di linearizzabilità che consente l'interazione con un sistema distribuito allo stesso modo di con un singolo server.

Il modo tipico per risolvere questo problema è eseguire più letture su repliche diverse e attendere una decisione sul quorum. Ciò non solo consuma risorse aggiuntive ma ritarda anche in modo significativo la lettura a causa del lungo ritardo di andata e ritorno della rete.

L'aggiunta di timestamp precisi e affidabili su un back-end e sulle repliche ci consente semplicemente di attendere finché la replica non raggiunge il timestamp di lettura:

Ciò non solo accelera la lettura, ma consente anche di risparmiare tonnellate di potenza di calcolo.

Una condizione molto importante affinché questo progetto funzioni è che tutti gli orologi siano sincronizzati o che sia noto lo scostamento tra un orologio e la fonte dell'ora. L'offset, tuttavia, cambia a causa della correzione costante, della deriva o di semplici variazioni di temperatura. A tale scopo, utilizziamo la nozione di Finestra di Incertezza (WOU), in cui possiamo dire con un'alta probabilità dove si trova l'offset. In questo particolare esempio, la lettura dovrebbe essere bloccata fino al timestamp di lettura più WOU.

Si potrebbe sostenere che non abbiamo realmente bisogno del PTP per questo. NTP andrà benissimo. Ebbene, lo abbiamo pensato anche noi. Ma gli esperimenti che abbiamo eseguito confrontando la nostra implementazione NTP all'avanguardia e una prima versione di PTP hanno mostrato una differenza di prestazioni di circa 100 volte:

Esistono diversi casi d'uso aggiuntivi, tra cui il tracciamento degli eventi, l'invalidazione della cache, i miglioramenti nel rilevamento delle violazioni della privacy, la compensazione della latenza nel metaverso e l'esecuzione simultanea nell'intelligenza artificiale, molti dei quali ridurranno notevolmente i requisiti di capacità hardware. Questo ci terrà impegnati per gli anni a venire.

Ora che siamo sulla stessa lunghezza d'onda, vediamo come abbiamo implementato il PTP su scala Meta.

Dopo diverse revisioni dell'affidabilità e del funzionamento, siamo arrivati ​​a un progetto che può essere suddiviso in tre componenti principali: il rack PTP, la rete e il client.

Allacciate le cinture: faremo un'immersione profonda.

Questo ospita l'hardware e il software che servono tempo ai clienti; il rack è costituito da più componenti critici, ciascuno dei quali è stato accuratamente selezionato e testato.

L'antenna GNSS è facilmente uno dei componenti meno apprezzati. Ma questo è il luogo dove ha origine il tempo, almeno sulla Terra.

Puntiamo alla precisione al nanosecondo. E se il ricevitore GNSS non è in grado di determinare con precisione la posizione, non sarà in grado di calcolare l'ora. Dobbiamo considerare fortemente il rapporto segnale-rumore (SNR). Un'antenna di bassa qualità o un'ostruzione nel cielo aperto possono provocare un errore elevato di deviazione standard della posizione 3D. Affinché il tempo venga determinato in modo estremamente accurato, i ricevitori GNSS dovrebbero entrare nella cosiddetta modalità temporale, che in genere richiede un errore 3D <10 m.