リアルタイムの整合性

一部の分散システムの性質上、要求間のリアルタイムの整合性は、暗黙的に適用するのが困難です。 解決策は、複数の同期トークンの形式でプロトコル サポートを許可することです。 同期トークンは省略可能です。

最初の要求

異なるクライアント インスタンスと要求の間でリアルタイムの整合性を保証するには、省略可能な Sync-Token 要求および応答ヘッダーを使用します。

構文:

Sync-Token: <id>=<value>;sn=<sn>
パラメーター 説明
<id> トークン ID (不透明)
<value> トークン値 (不透明)。 base64 でエンコードされた文字列を使用できます。
<sn> トークン シーケンス番号 (バージョン)。 数字が高いほど、同じトークンの新しいバージョンを意味します。 コンカレンシーとクライアント キャッシュが向上します。 トークンのバージョンが含まれているため、クライアントではトークンの最後のバージョンのみを使用することができます。 このパラメーターは要求では必要ありません。

Response

サービスからの各応答には、Sync-Token ヘッダーが含まれます。

Sync-Token: jtqGc1I4=MDoyOA==;sn=28

後続の要求

後続の要求では、指定された Sync-Token に対するリアルタイムで整合性の取れた応答が保証されます。

Sync-Token: <id>=<value>

Sync-Token ヘッダーを要求から除外した場合、サービスが内部的に落ち着くまでの短い期間 (最大数秒間) に、キャッシュされたデータがサービスによって返される可能性があります。 この動作により、読み取りの直前に変更が行われた場合に、読み取りに不整合が生じる可能性があります。

複数の同期トークン

サーバーでは、1 つの要求に対して複数の同期トークンを使用して応答する場合があります。 次の要求でリアルタイムの整合性を維持するには、クライアントでは、受信したすべての同期トークンを使用して応答する必要があります。 複数のヘッダー値は、コンマで区切る必要があります。

Sync-Token: <token1-id>=<value>,<token2-id>=<value>