0

最近、軽量エッジを使用することが非常に理にかなっているユースケースに出くわしました。選択条件の一部として 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 内) に追加しようとしましたが、効果はありません。エッジが更新されるたびに、バージョンがインクリメントされます (これは、正しく機能していないことがわかると思います)。

軽量エッジがリッドバッグでどのように機能するか (または機能しないか) について考えている人はいますか?

ありがとう!

4

0 に答える 0