問題タブ [rexster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
titan - rexster http または rexpro の接続に非常に時間がかかる
ここに投稿する助けがないので、gremlin-group と auriliusgraphs グループに同じ質問を投稿しました。
私は現在、titan + rexster + cassandra + gremlin を評価しています。私たちのユースケースでは、グラフへの書き込みは非常に簡単で、ほとんどの場合、titan buleprints API を使用して Java コードを介して行われますが、読み取りは非常に動的であり、異なる環境で実行されているクライアントからのものである可能性があります。言語 (java/python) したがって、rexpro を介して gremlin を介して読み取ることを考えています。私が観察したことは、rexster サーバーへの接続に要求ごとに最大 500 ミリ秒の時間が費やされていることです。現在、Macbook (2 CPU、8 GB、1600 MHz) で実行されている非常に小さなグラフで、頂点が最大 3K、エッジが最大 30K あります。2 度の隣接要素のトラバーサルを含む少し複雑なクエリを実行していますが、すべてインデックスが関係しています。1 回のショットで約 100 のクエリを実行すると、完了までに約 1 秒、つまりクエリごとに 10 ミリ秒かかりますが、1 つずつ実行すると約 50 秒、つまりクエリごとに約 500 ミリ秒かかります。複数の並列クライアントを実行すると、線形ではありませんが時間が増加します。たとえば、同じ 100 クエリで 5 つの並列クライアントを実行すると約 110 秒かかり、同じ 100 クエリで 10 の並列クライアントを実行すると約 170 秒かかります。Java を RexsterClient で、python を python-rexpro (https://github.com/bdeggleston/rexpro-python )、 -f オプションを使用して rexster-console でスクリプトを直接実行するか、http クライアント経由でスクリプトを実行します。CentOS 6.5 の単一ノード クラスターで実行しているときに、同様の結果が得られました。また、クエリの種類によってパフォーマンスが大きく変わることはありません。単純に使用しg.V
ても結果は似ています。AFAIK rexster は grizzly を使用しているため、サーバーのパフォーマンスが大幅に向上することが期待されます。
私が使用している Titan のバージョンは 0.5.3 です。私は1GBのXmxをrexsterに渡しました。rexster.xml の構成は次のとおりです。
何が間違っている可能性がありますか?
よろしくお願いいたします。
python - 電球を使用して Rexster に接続すると SystemError が発生する
Titan + Cassandra + Elasticsearch + Rexster サーバーをセットアップしました。すべてが正しくインストールされ、Gremlin コンソールで「Graph of the Gods」をいじることができます。titan.sh
私はスクリプトからすべてを始めました。
titan/bin/titan.sh status
出力:
に行くhttp://localhost:8182/doghouse
と、「グラフ」と呼ばれる空のグラフを見ることができます。
今、電球パッケージ ( http://bulbflow.com/ )を使用して Python (3.4) から Rexster に接続しようとしています。私が試しているコードは非常に単純です:
次の例外が発生します。
「グラフ」というグラフを追加する必要があります。これは、Rexster で見つけたデフォルトのグラフであり、私が追加したものではありません。
それで、私はいくつかの質問があります:
- 電球を使用して Rexster に接続するにはどうすればよいですか (私は確かに何か間違ったことをしています)。
- 新しいグラフを作成するにはどうすればよいですか?
cassandra - TITAN : Cassandrathrift vs Astyanaxのパフォーマンス
Cassandra (6 ノード クラスター) と Elasticsearch で TITAN-0.4.3、REXSTER 2.4 を使用しています。私の使用例では、一度に頂点とエッジをグラフに一括アップロードする必要があります。現在、新しい頂点とエッジを追加する速度は非常に遅く (~45/秒)、目標は ~1000 頂点/秒です。現在、cassandra への Astyanax コネクタを使用しています (負荷分散とフェイルオーバー検出機能を備えています)。Astyanax over Thrift (Cassandrathrift) コネクタまたはその逆の利点または欠点はありますか?
お知らせ下さい!
アステュアナクス
カサンドラスリフト
cassandra - Titan : UNIQUE かどうかなどのインデックスの特性を確認するにはどうすればよいですか?
ストレージ バックエンドとして cassandra を使用して、TITAN 0.4 バージョンを使用しています。Vertex プロパティで作成された特定のインデックスがあります。私は彼らがそうであるかどうかを確認したいUNIQUE()
ですか?0.4
バージョンを使用してg.getManagementSystem()
いるため、利用できません。を使用してインデックスを一覧表示できg.getIndexedKeys(Vertex.class)
ます。ただし、独自性などの詳細については言及されていません。
ご意見をお聞かせください。
database - グラフ データベースの構造
私の場合、Sparsity (以前の名前は DEX) グラフ データベースを使用します。しかし、グラフ データベースに関連する経験はありません。私はいくつかの記事を読みましたが、それらの多くは、これらの DB を使用するためにいくつかのこと (Rexster サーバー、REST API、Bluprint など) を提案しています。では、それらの DB にサーバー (つまり Rexster) を使用する必要がありますか? そして、DB 操作を行うためにどのような構成を行う必要がありますか。プログラミング言語として Java を使用します。
python - Rexster Server (および Titan) が応答しなくなるのはなぜですか?
設定
Elasticsearch バックエンドで Titan Rexster (titan-server-0.4.4.zip) を使用して、Ubuntu 12.4 サーバーで実行されるレコメンダー システムを実装しています。Rexster サーバーに接続するために、Python 用の Bulbflow ライブラリを使用します。
ベータ版は 3 週間は正常に動作しているように見えましたが、負荷が「増加」したため (ユーザー数が 10 人まで)、Rexster サーバーが応答を停止しました。rexster の構成が間違っているのか、Bulbflow ライブラリを正しく使用していないのかわかりません。
レクスター/タイタン構成
ここに私の rexster-cassandra-es.xml があります:
ワーカーとカーネルのスレッドプールのコアサイズと最大サイズを変更しました。変更しないと、Rexster サーバーがハングしたり、応答が遅くなったりします。
core-size と max-size の適切な値は?
バルブフローの使用法
バルブフローを使用するために、リクエストを実行する必要があるたびに新しい Graph オブジェクトを作成します。多くのリクエストがあるため、これらのオブジェクトは非常に頻繁に作成されます。
新しいリクエストごとに本当に新しい Graph オブジェクトを作成する必要がありますか?
Graph オブジェクトを 1 つだけ作成して、新しいリクエストがグラフ データベースに送信されるたびに使用することはできますか? または、セッションの問題が発生することはありますか?
エラーメッセージ
すべてがスタックし、プログラムを強制終了 (ctrl-c) すると、次のスタック トレースが表示されます。
回復
回復するには、rexster / titan をシャットダウンして再起動する必要があります。Rexster サーバーを停止するたびに ( ./bin/titan -c cassandra-es stop )、次の出力が表示されます。
レクスターは完全に立ち往生しています。
有益なご案内をお待ちしております。
graph - TITAN : Gremlin クエリを繰り返し実行すると一貫性のない結果が返される
カサンドラ上で REXSTER/TITAN 0.4 を実行しており、トラバーサルにグレムリンを使用しています。Rexster Doghouse Gremlin コンソールで以下の gremlin クエリを実行しました。
頂点 92 は、同じキー ("eddy.com") を持つ重複した頂点だったため、以前に削除されました。
しかし、クエリを実行すると、その頂点を取得する場合と取得しない場合があります。これはローカル開発マシンで実行されています。つまり、他のスレッドや並列タスクがその間にこの頂点を実行/更新していないことを意味します。ここに構成/設定がありませんか? これはバグですか?助けてください!
graph-databases - Titan インデックス (標準) を直接クエリして、並べ替えられた順序で頂点を取得する方法
Cassandra で Rexster/TITAN 0.4 を使用しています。頂点キーは、以下の標準インデックスを使用してインデックス付けされます。g.makeKey("ドメイン").dataType(String.class).indexed("standard", Vertex.class).make(); パフォーマンスとスケーラビリティのために一意性を使用していません。グラフには約 10M の頂点があります。
私の要件は、各頂点を反復処理し、重複があるかどうかを特定してから削除することです。既に存在するインデックスから直接、ソートされた頂点のリストを取得する方法はありますか? 「ダイレクト インデックス クエリ」に似たインデックス (標準の TITAN インデックス) に対する直接クエリ。頂点全体を小さなバッチに分割し、個別に処理できるようにします。
不可能な場合、これを達成するための最良の方法は何ですか。グラフ内の重複を見つけて削除するためだけに、Titan-Hadoop または同様のソリューションを使用したくありません。
以下のクエリを実行して、ソートされた順序で 1000 個の頂点を取得したいと考えています。
しかし、このクエリは 'domain'で作成された標準のインデックスを使用しておらず、実行に失敗し、メモリ不足の例外が発生します。グラフには最大 10M の頂点があります。
この特定のケースでグレムリンにインデックスを使用させるにはどうすればよいですか?