問題タブ [orientdb2.2]
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.
database - 2 つの頂点に共通のプロパティに基づいてエッジを作成するにはどうすればよいですか?
EMPLOYEE と BRANCH の 2 つの頂点クラスがあり、どちらにもデータが入力されており、エッジ クラス InBranch をそれらの関係にしたいと考えています。
したがって、Employee -InBranch-> Branch です。
プロパティを持つクラスEmployee -> empname、branchname。
プロパティを持つクラス ブランチ --> ブランチ名。
共通のプロパティ(branchname)を relationship として使用する代わりに、これらをエッジ
(InBranch) として作成したいと考えています。
私は仕事を以下のような構造にしようとしています:
これは、Luca Garulli のコードに基づいて直感的にパターン化されています。
OrientDB : Using Schemas with Graphs, Part 1 .
.net - Orientdb 分散モード .Net クライアント エラー
OrientDB Community Edition v2.2.8 を分散モードでセットアップし、前にロード バランサー (F5) を備えた 2 つのノードを配置しました。.net クライアント (OrientDB-Net.binary.Innov8tive.0.1.11) を使用してデータベースに書き込む .net アプリがあります。アプリがデータベースに保存しようとすると、このエラーが発生します
負荷分散された URL とノードに直接接続してみました。いつも同じエラーが発生します。2 つの異なるタイプの頂点と、これら 2 つの頂点間の 1 つのエッジを保存しています。接続しようとしているノードによっては、その特定のノードにないオブジェクトの 1 つでエラーが発生します。このようにアプリで接続を作成しています
.net クライアントで分散モードの特定の設定が見つかりませんでした。私が見逃しているものはありますか?
orientdb - OrientDB での最短パスが非常に遅い
OrientDB と Java を使用して、このクエリを使用して、すべてのノードのペアについて 300000 ノードへの最短パスを計算するプログラムがありますが、プログラムは非常に遅く、誰かが私を助けることができます。
orientdb - OrientDb Studio には RuntimePermission.createClassLoader が必要です
埋め込み (plocal) サーバーを使用して OrientDb スタジオを起動できます。ただし、RuntimePermission.createClassLoader にアクセス許可を付与する必要があります。私はむしろその許可を与えたくありませんし、クラスローダーは必要ないかもしれません。ホット再展開は私のニーズに合わない可能性があり、サーバーは組み込まれます (アプリケーションから独立していません)。
クラスローダーなしで OrientDb Studio をロードすることは可能ですか?
サーバーを起動するコードは次のとおりです。
orientServerConfigFile は私の設定ファイルを指しています。ここに私の設定ファイルがあります:
mysql - Orientdb GC オーバーヘッド制限を超えた/メモリ不足エラーとパフォーマンスの低下
私の orientdb データベースには、約 230 万のレコードがあります。statement- を使用して、すべての重複レコード (約 750,000 件あります) をクエリしようとしています
SELECT FROM (select PROP1, PROP2, count(*) as c from vin_data group by PROP1 ) where c > 1
。制限を約 200 に設定すると、クエリに約 180 秒かかります (遅いと思います)。しかし、制限を 750000 に設定すると、メモリ不足エラーが発生します。私のRAMは4GBで、Xms64mとXmx3600mを設定しています。PROP1 と PROP1+PROP2(コンポジット) にインデックスを設定しました。私の質問は、230 万レコードのデータベースに 4GB の RAM で十分ですか?
orientdb - 分散 OrientDB クラスターでノードを再起動した後、挿入 (JavaAPI) が失敗する
ノード検出に TCP-IP を使用する組み込みモードの 2 ノード分散 OrientDB システム。クラスevent
は 4 つのクラスターに分割されます。1 つのノードを再起動した後、そのノードでの挿入のちょうど半分が失敗し、次のエラー メッセージが表示されます。
INFO Local node 'orientdb-lab-node2' is not the owner for cluster 'event_1' (it is 'orientdb-lab-node1'). Reloading distributed configuration for database 'test-db' [ODistributedStorage]
およびスタック トレース:
これは、ノード 1 からのクラスター構成がどのように見えるかです。
ノード 1 と 2 が実行中、各ノードで 10 個の挿入
ノード 2 が停止しました
ノード 2 が再起動され、挿入が 5 回成功し、挿入が 5 回失敗しました
ヒントやアドバイスをいただければ幸いです。ありがとう。
orientdb - Orientdb 接続が閉じない
Orientdb 2.2.12を使用しています。
以下は、接続インスタンスを取得している場所からの単一のソースです
私のユースケースは作成しています:-
- 頂点
- エッジ
- 頂点、エッジなどを更新します。
App.java
私が直面している問題は何ですか?
プログラムが終了してconn.close()
完了した後でも、JConsole は Orientdb 接続がアクティブであることを示しています。
これはバグですか、それとも何か間違っていますか?
orientdb - ETL ツールを使用して行単位の JSON を OrientDB にインポートすることは可能ですか?
各行が単一の JSON オブジェクトを表す一連のファイル (それぞれ約 10Gb) があります。ストリーミング モードでインポートしたいのですが、現在サポートされていないようです (OrientDB v.2.2.12)。回避策はありますか? また、この場合の推奨される方法は何ですか?
orientdb - SSD 上の plocal にエッジをインポートする際の ETL パフォーマンスの問題の方向付け
私の目標は、約 50M の頂点を持つグラフに 25M のエッジをインポートすることです。目標時間:
インポートの現在の速度は ~150 エッジ/秒です。リモート接続の速度は約 100 エッジ/秒でした。
- 抽出された 20,694,336 行 (171 行/秒) - 20,694,336 行 -> ロードされた 20,691,830 頂点 (171 頂点/秒) 合計時間: 35989762ms [警告 0、エラー 4]
- 抽出された 20,694,558 行 (156 行/秒) - 20,694,558 行 -> ロードされた 20,692,053 頂点 (156 頂点/秒) 合計時間: 35991185ms [警告 0、エラー 4]
- 抽出された 20,694,745 行 (147 行/秒) - 20,694,746 行 -> ロードされた 20,692,240 頂点 (147 頂点/秒) 合計時間: 35992453ms [警告 0、エラー 4]
- 抽出された 20,694,973 行 (163 行/秒) - 20,694,973 行 -> ロードされた 20,692,467 頂点 (162 頂点/秒) 合計時間: 35993851ms [警告 0、エラー 4]
- 抽出された 20,695,179 行 (145 行/秒) - 20,695,179 行 -> ロードされた 20,692,673 頂点 (145 頂点/秒) 合計時間: 35995262ms [警告 0、エラー 4]
etl config で並列を有効にしようとしましたが、Orient 2.2.12 で完全に壊れているように見え (2.1 のマルチスレッド変更との矛盾?)、上記のログに 4 つのエラーしか表示されません。ダム並列モード (2 つ以上の ETL プロセスを実行) も、plocal 接続では不可能です。
私の設定:
データサンプル:
{"_ref":"1072308006473","with_to":"person","with_id":"010703814320","_type":"is.stakeholder","value_of_share":10000.0} {"_ref":"1075837000095", "with_to":"person","with_id":"583600656732","_type":"is.stakeholder","value_of_share":15925.0} {"_ref":"1075837000095","with_to":"person"," with_id":"583600851010","_type":"is.stakeholder","value_of_share":33150.0}
サーバーの仕様は、Google Cloud 上のインスタンス、PD-SSD、6CPU、18GB RAM です。
ところで、同じサーバー上で、リモート接続を使用して頂点をインポートする際に約 3k/秒を得ることができました (それでも遅すぎますが、現在のデータセットでは許容範囲内です)。
そして質問: 1 秒あたり 10,000 回の挿入、または少なくとも 5,000 回のインポート速度を上げるための信頼できる方法はありますか? インデックスをオフにしたくありません。数十億ではなく数百万のレコードです。
アップデート
数時間後、パフォーマンスが低下し続けます。
- 抽出された 23,146,912 行 (56 行/秒) - 23,146,912 行 -> ロードされた 23,144,406 頂点 (56 頂点/秒) 合計時間: 60886967ms [警告 0、エラー 4]
- 抽出された 23,146,981 行 (69 行/秒) - 23,146,981 行 -> ロードされた 23,144,475 頂点 (69 頂点/秒) 合計時間: 60887967ms [警告 0、エラー 4]
- 抽出された 23,147,075 行 (39 行/秒) - 23,147,075 行 -> ロードされた 23,144,570 頂点 (39 頂点/秒) 合計時間: 60890356ms [警告 0、エラー 4]