Coerenza in tempo reale
A causa della natura di alcuni sistemi distribuiti, la coerenza in tempo reale tra le richieste è difficile da applicare in modo implicito. Una soluzione consiste nel consentire il supporto del protocollo sotto forma di più token di sincronizzazione. I token di sincronizzazione sono facoltativi.
Richiesta iniziale
Per garantire la coerenza in tempo reale tra istanze client e richieste diverse, usare intestazioni facoltative Sync-Token
di richiesta e risposta.
Sintassi:
Sync-Token: <id>=<value>;sn=<sn>
Parametro | Descrizione |
---|---|
<id> |
ID token (opaco) |
<value> |
Valore del token (opaco). Consente la stringa con codifica Base64. |
<sn> |
Numero di sequenza del token (versione). Maggiore significa una versione più recente dello stesso token. Consente una migliore concorrenza e memorizzazione nella cache del client. Il client può scegliere di usare solo l'ultima versione del token, perché le versioni del token sono inclusive. Questo parametro non è obbligatorio per le richieste. |
Risposta
Il servizio fornisce un'intestazione Sync-Token
con ogni risposta.
Sync-Token: jtqGc1I4=MDoyOA==;sn=28
Richieste successive
Qualsiasi richiesta successiva garantisce una risposta coerente in tempo reale rispetto all'oggetto fornito Sync-Token
.
Sync-Token: <id>=<value>
Se si omette l'intestazione Sync-Token
dalla richiesta, è possibile che il servizio risponda con dati memorizzati nella cache durante un breve periodo di tempo (fino a pochi secondi), prima che si stabilissi internamente. Questo comportamento potrebbe causare letture incoerenti se le modifiche si sono verificate immediatamente prima della lettura.
Più token di sincronizzazione
Il server potrebbe rispondere con più token di sincronizzazione per una singola richiesta. Per mantenere la coerenza in tempo reale per la richiesta successiva, il client deve rispondere con tutti i token di sincronizzazione ricevuti. I valori di intestazione multipli devono essere delimitati da virgole.
Sync-Token: <token1-id>=<value>,<token2-id>=<value>