OrientDB を使用した deBruijn グラフの構築時間を短縮するためのパフォーマンス チューニング機能について、インターネットとマニュアルを検索しました。以下はすべて Java の dione です。
OrientDB では: Kmerがインデックス化されます。 エッジはプロパティ ベースです。
私がやりたいことは次のとおりです。
- 複数シーケンスファイルを読み込む
- kmers での分割シーケンス
- Kmer をデータベースに追加し、隣接する kmer 間に Edge を作成します
1 と 2 はすでに完了しています。そのため、OrientDB に kmer を追加するときは、この kmer が存在するかどうかを確認する必要があります。存在する場合は、nwe エッジを追加するための頂点が必要です。そうするための速い方法はありますか?kmer をキーとして、OrientDB RID を値として、ローカル ハッシュを既に作成しました。しかし、頂点を取得するには時間がかかるようです。
私はすでに試しました:
OGlobalConfiguration.USE_WAL.setValue(false);
OGlobalConfiguration.TX_USE_LOG.setValue(false);
declareIntent(new OIntentMassiveInsert());
256 kmers と 40.000.000 エッジを追加するには、3 時間近くかかります。また、作成したDBのサイズは9GB、起動ファイルは40MBでした。それを改善する方法はありますか?
わからないことがあれば遠慮なく聞いてください。
どうもありがとう。
マイケル
編集:
Record Grow factor の経験はありますか? Node レコードには、デフォルトでインエッジ情報とアウトエッジ情報が含まれていると思います。RECORD_GROW_FACTOR でランタイムを増やすことはできますか? その経験はありますか?