Официальный сайт OrientDB говорит:
В обычных магазинах аппаратного обеспечения до 150 000 документов в секунду 10 миллиарды документов в день. Большие графики загружаются в несколько миллисекунды, не выполняя дорогостоящего JOIN, такого как Relational СУБД.
Но выполнение следующего кода показывает, что он принимает ~ 17000ms для вставки 150000 простых документов.
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.core.record.impl.ODocument;
public final class OrientDBTrial {
public static void main(String[] args) {
ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/foo");
try {
db.open("admin", "admin");
long a = System.currentTimeMillis();
for (int i = 1; i < 150000; ++i) {
final ODocument foo = new ODocument("Foo");
foo.field("code", i);
foo.save();
}
long b = System.currentTimeMillis();
System.out.println(b - a + "ms");
for (ODocument doc : db.browseClass("Foo")) {
doc.delete();
}
} finally {
db.close();
}
}
}
Мое оборудование:
- Dell Optiplex 780
- Intel (R) Core (TM) 2 Duo CPU E7500 @2.93Ghz
- ОЗУ 8 ГБ
- Windows 7 64bits
Что я делаю неправильно?
Разделение сохранений в 10 параллельных потоках для минимизации накладных расходов Java запустило его в ~ 13000 мс. Все еще намного медленнее, чем говорит первая страница OrientDB.