私はDataStax Enterprise Graphを使用しており、Gremlin を使用してグラフ データベースからアプリにすべてのノードをストリーミングしたいと考えています。
注:永続変数のセッションを使用して、WebSocket 経由でGremlin サーバーと通信しています。
メモリ内のすべてのノードを取得せずにこれを行うには、まずサーバー上にイテレータを作成します。
// called once
iter = g.V();
次に、反復子をバッファに徐々に読み込み、バッファの内容を返します。
// called multiple times, until it returns an empty array
results = []
while (itemStream.hasNext() && results.size < 5000) {
results.push(itemStream.next())
}
return results
以前はTitanDBでこれを行っていましたが、問題なく動作しました (1 秒あたり数千ノードの読み取り)。
DSE Graphを使用すると、はるかに遅くなり (1 秒あたり 330 回の読み取り)、わずか 400,000 個のノードを読み取った後に次のエラー エラーが発生します。
操作がタイムアウトになりました - 0 応答しか受信しませんでした。
DSE Graphでこれを行うより良い方法はありますか?