3.5. ストリーミング API
Data Grid は、InputStream および OutputStream のインスタンスを返すメソッドを実装する Streaming API を提供するため、Hot Rod クライアントと Data Grid サーバー間で大きなオブジェクトをストリーミングできます。
大きなオブジェクトの次の例を考えてみましょう。
StreamingRemoteCache<String> streamingCache = remoteCache.streaming();
OutputStream os = streamingCache.put("a_large_object");
os.write(...);
os.close();
StreamingRemoteCache<String> streamingCache = remoteCache.streaming();
OutputStream os = streamingCache.put("a_large_object");
os.write(...);
os.close();
次のように、ストリーミングを通じてオブジェクトを読み取ることができます。
Streaming API は値をマーシャリング しません。つまり、Streaming API と非 Streaming API の両方を同時に使用することはできません。ただし、このケースを処理するためにカスタムマーシャラーを実装することもできます。
RemoteStreamingCache.get(K key) メソッドによって返される InputStream は VersionedMetadata インターフェイスを実装しているため、以下のようにバージョンと有効期限の情報を取得できます。
条件付き書き込みメソッド (putIfAbsent()、replace()) は、値がサーバーに完全に送信されてから、実際の条件チェックを実行します。つまり、close() メソッドが OutputStream で呼び出される場合です。