OrientDB sitio oficial dice:OrientDB de escritura lenta
En las ferreterías comunes de hasta 150.000 documentos por segundo, 10 mil millones de documentos por día. Los Big Graphs se cargan en pocos milisegundos sin ejecutar el costoso JOIN como el Relational DBMSs.
Pero, la ejecución del siguiente código muestra que está tardando ~ 17000ms en insertar 150000 documentos simples.
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();
}
}
}
Mi hardware:
- Dell Optiplex 780
- Intel (R) Core (TM) 2 Duo CPU E7500 @ 2.93GHz
- 8 GB de RAM
- de Windows 7 64bits
¿Qué estoy haciendo mal?
Dividir los guardados en 10 subprocesos simultáneos para minimizar la sobrecarga de Java hizo que se ejecutara en ~ 13000 ms. Aún mucho más lento de lo que dice la portada de OrientDB.
¿Pudo obtener el máximo rendimiento? Estudio este problema, pero mi rendimiento es incluso peor que usted –
He decidido usar H2 en lugar de OrientDB. H2 se ajusta a mi caso de uso. –