20.6.14. hotgitops Protocol 2.9
このバージョンのプロトコルは Infinispan 9.4 以降実装されます。
互換性モードの削除
操作からの Response status フィールドの互換性モードヒントは送信されなくなりました。したがって、以下のステータスが削除されます。
-
0x06: 互換性モードのある正常なステータス。 -
0x07: return previous value and compatibility mode で成功したステータス。 -
0x08: return previous value and compatibility mode では実行されません。
サーバーのストレージが何であるかを確認するには、ping 操作で設定したキーと値の MediaType と値が返されます。
Ping 応答(0x18):
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 以前と同じ |
| 応答のステータス | 1 バイト | 以前と同じ |
| キーのタイプ | MediaType | サーバーに保存されているキーのメディアタイプ |
| 値のタイプ | MediaType | サーバーに保存されている値のメディアタイプ |
新しいクエリー形式
このバージョンは、JSON 形式のクエリー要求および応答をサポートします。操作 0x1F (Query Request)および 0x20 (Query Response)の形式は変更されません。
JSON ペイロードを送信するには、ヘッダーの「値形式」フィールドは application/json である必要があります。
クエリーリクエスト(0x1F):
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 要求ヘッダー |
| クエリーの長さ | vInt | UTF-8 でエンコードされたクエリーオブジェクトの長さ。 |
| クエリー | バイト配列 | JSON(UTF-8)でエンコードされたクエリーオブジェクトを含むバイトアレイ。ペイロードの例: 詳細は以下のようになります。 query: the Ickle query String. offset: the index of the first result to return. max_results: the maximum number of results to return. query_mode: the indexed query mode. Either FETCH or BROADCAST. FECTH is the default.
|
クエリー応答(0x20):
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 応答ヘッダー |
| 応答ペイロードの長さ | vInt | UTF-8 でエンコードされた応答オブジェクトの長さ |
| 応答ペイロード | バイト配列 | JSON でエンコードされた応答オブジェクトを含むバイト配列。前のフィールドで長さが指定されています。ペイロードの例: 詳細は以下のようになります。 total_results: the total number of results of the query. hits: an ARRAY of OBJECT representing the results. hit: each OBJECT above contain another OBJECT in the "hit" field, containing the result of the query, in JSON format.
|
また、このバージョンには Hotgitops トランザクションに新しい 3 つの操作が導入されています。
- Request V2 を準備します。これにより、新しいパラメーターを要求に追加します。応答は同じままになります。
- Dest Transaction Request: サーバーのトランザクション情報を削除します。
- In-Doubt Transactions Request の取得: インダウト状態のトランザクションの Xid をすべて取得します。
要求 V2 の準備
要求(0x7D):
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 要求ヘッダー |
| Xid | XID | トランザクション ID(XID) |
| OnePhaseCommit | byte |
|
| recoverable | byte |
このトランザクションでリカバリーを許可するには、 |
| タイムアウト | Long |
アイドルタイムアウト(ミリ秒単位)。トランザクションがリカバリー不可能な場合( |
| キー数 | vInt | キー数 |
| 各キーについて(キーは一意でなければなりません) | ||
| キーの長さ | vInt |
キーの長さ。vInt のサイズは最大 5 バイトで、理論では |
| キー | バイト配列 | キーを含むバイトアレイ |
| Control Byte | Byte |
以下の意味を持つビットセット。 |
| バージョン読み取り | Long |
読み込まれたバージョン。 |
| TimeUnits | Byte |
ライフスパンの時間単位(最初の 4 ビット)および maxIdle(最後 4 ビット)。デフォルトのサーバーの有効期限には、特別なユニット |
| 有効期間 | vLong |
エントリーの有効期間。時間の単位が |
| 最大 ID | vLong |
各エントリーがキャッシュからエビクトされる前にアイドル状態になる期間。時間の単位が |
| 値の長さ | vInt |
値の長さ。 |
| 値 | byte-array |
保存する値。 |
応答(0x7E)
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 応答ヘッダー |
| XA 戻りコード | vInt |
準備応答を表す XA コード。 |
トランザクションを忘れる
要求(0x79)
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 要求ヘッダー |
| Xid | XID | トランザクション ID(XID) |
応答(0x7A)
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 応答ヘッダー |
インダウト状態のトランザクションの取得
要求(0x7B)
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 要求ヘッダー |
応答(0x7C)
| フィールド名 | サイズ | 値 |
|---|---|---|
| ヘッダー | variable | 応答ヘッダー |
| Xid の数 | vInt | 応答の Xid の数 |
| 各エントリーに対して以下を行います。 | ||
| Xid | XID | トランザクション ID(XID) |