問題タブ [orientdb-2.1]
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.
orientdb - OrientGraphFactory プールとネットワーク接続プール
私は最近、OrientDB 2.1 で新しい OrientGraphFactory を使い始めましたが、ほとんどの部分で優れています。
私はscalaを使用しており、次のようにしています:
新しいデータベース インスタンスが必要な場合は、次のようにします。
これはすべてうまくいっているようですが、高負荷時にいくつかの問題が発生しています。OrientDB Docs: http://orientdb.com/docs/2.1/Performance-Tuning.htmlで指定されているように、おそらくネットワーク接続プールで追加の作業を行う必要があると思います。
ドキュメントでは、ネットワーク接続プールを次のように設定することを提案しています。
database = new ODatabaseDocumentTx("remote:localhost/demo"); database.setProperty("minPool", 2); database.setProperty("maxPool", 5);
database.open("管理者", "管理者");
私が疑問に思っているのは、OrientGraphFactory プールがある種のネットワーク プールとしても機能し、データベース インスタンスごとにネットワーク接続を作成するかどうかです。これは事実ですか?または、ネットワーク接続プールを追加でセットアップする必要がありますか?
ありがとう!
orientdb - Tinkerpop を使用した OrientDB フェッチ計画/戦略
グラフを操作するために OrientDB で Tinkerpop 2.6 を使用してきましたが、パフォーマンスの問題が発生しています。
この問題は、OrientDB がレコードを遅延ロードするという事実に関係していると思われます。私の場合、隣接する頂点を 2 つの異なるラベルで取得し、新しいエッジを追加して、プロパティを設定しています。
OrientDB がフェッチ プランに注意を払うことを推奨していることは知っていますが、OrientGraph や Tinkerpop を介してそうする明確な方法がわかりません。OrientGraphFactory を使用してトランザクション データベース インスタンスを取得していることに注意してください。
OrientGraphs と Tinkerpop でフェッチ プランを使用するにはどうすればよいですか?
ありがとう!
orientdb - 実行時にorientdbディスクキャッシュサイズを確認する方法は?
orientdb 2.1.5 組み込みアプリケーションを調整して、ディスクへの I/O を最小限に抑えようとしています。ドキュメント ( http://orientdb.com/docs/last/Performance-Tuning.html ) を読み、 storage.diskCache.bufferSizeフラグを使用してディスク キャッシュ サイズを増やしました。htop と top (私は Linux を使用しています) を見ると、Java プロセスのメモリ使用量が増加していることに気付きませんでした。orient によって公開された 2 つの MBean ( O2QCacheMXBeanとOWOWCacheMXBean ) でさえ、増分に関する証拠を強調していません。では、現在のディスク キャッシュ サイズを確認するにはどうすればよいでしょうか。
これは私のJavaコマンドラインの一部です:
どうもありがとう。
group-by - OrientDB - 2 つの文字列を連結して集計する
通常、2 つの文字列を連結して集計を適用する場合は、次の構文に従います。
SQLサーバー
オラクル
OrientDB では、2 つの文字列を連結してそれらの集計を取得することは可能ですか?
kerberos - OrientDB と Kerberos の統合
OrientDb 2.1.6 を Kerberos と統合しようとしていますが、それに関するドキュメントが見つかりませんでした。明確にする必要がある
1) OrientDB 2.1.6 は Kerberos をサポートします
2)誰もがすでにそれを実装しています。
orientdb - クラスター名からクラスター ID を要求する
クラスター名からクラスター ID を要求する方法はありますか?
コンテキスト: このコンテキストでは、既定のクラスターでは、子クラスターがデータを表示できますが、更新はできません。独自のクラスターとは異なるクラスターから提供されたデータを見ていることをユーザーに通知したいと思います。
例
支店は本社からの製品を参照しますが、更新する必要はありません。それoRoles
を修正します。
支店のユーザーが現在本社の製品を見ていることをどのように知ることができますか?
のようなリクエストを探していました (そのクエリは機能しません)
またはJAVA API経由の方法
(orientdb 2.1.0 で実行)
orientdb - OOfflineClusterException メッセージ: オフライン クラスターからレコードを読み取ることができません
オフライン クラスタで使用可能なレコードをインデックスを使用して取得しようとすると、OOfflineClusterException が発生します。通常のレコードが見つからない状況ではなく、なぜオフライン クラスタにアクセスする必要があるのでしょうか。
orientdb - Ridbags を使用した OrientDB 軽量エッジ?
最近、軽量エッジを使用することが非常に理にかなっているユースケースに出くわしました。選択条件の一部として 2 つの頂点が関連しているかどうかをチェックするときのクエリが大幅に高速化されました。
とはいえ、私は高度な同時実行環境で運用しているため、いくつかの競合 (OConcurrentModificationException) に遭遇しました。その特定のクラスの自動マージに競合戦略を設定することで、これを乗り越えました。
さらに調査したところ、エッジを追加するときの同時実行に関するこの記事に出くわしました: http://orientdb.com/docs/2.1/Concurrency.html#concurrency-when-adding-edges
エッジが頻繁に変更される状況では RID バッグを使用することをお勧めします。また、エッジが追加/削除されるたびにバージョンがインクリメントされないという優れた利点があります。素晴らしいように聞こえますが、動作させることができません。
-DridBag.embeddedToSbtreeBonsaiThreshold=-1 をクライアントに追加しようとしましたが、効果はありません。次に、自分のコードに入り、次を追加しました。
OGlobalConfiguration.RID_BAG_EMBEDDED_TO_SBTREEBONSAI_THRESHOLD.setValue(-1);
最後に、-DridBag.embeddedToSbtreeBonsaiThreshold=-1 を orientdb サーバー (server.sh 内) に追加しようとしましたが、効果はありません。エッジが更新されるたびに、バージョンがインクリメントされます (これは、正しく機能していないことがわかると思います)。
軽量エッジがリッドバッグでどのように機能するか (または機能しないか) について考えている人はいますか?
ありがとう!