我已经在 Internet 和手册中搜索了一些性能调整功能,以减少我的 deBruijn Graph 与 OrientDB 的构建时间。以下所有内容都是用 Java 编写的。
在 OrientDB: Kmers被索引。 边缘是基于属性的。
我想做的是:
- 读入多序列文件
- kmers 中的拆分序列
- 将 Kmers 添加到数据库并在相邻 kmers 之间创建边缘
一二已经做好了。所以当我向 OrientDB 添加一个 kmer 时,我必须检查这个 kmer 是否存在,如果存在,我需要 vertx 来添加一个 nwe 边缘。有什么快速的方法吗?我已经创建了一个本地散列,其中 kmer 作为键,OrientDB RID 作为值。但是获取顶点似乎需要很多时间。
我已经尝试过:
OGlobalConfiguration.USE_WAL.setValue(false);
OGlobalConfiguration.TX_USE_LOG.setValue(false);
declareIntent(new OIntentMassiveInsert());
我需要将近 3 个小时来添加 256 kmers 和 40.000.000 个边。此外,创建的 DB 大小为 9GB,起始文件为 40 MB。有什么建议可以改进吗?
如果有什么不能理解的,请随时询问。
非常感谢。
迈克尔
编辑:
你对Record Grow factor有什么经验吗?我认为节点记录默认包含一些进出边缘信息。我可以使用 RECORD_GROW_FACTOR 增加运行时间吗?你有这方面的经验吗?