quiero almacenar algunos datos en mi base de datos neo4j. uso spring-data-neo4j para eso.método de guardar de CRUDRepository es muy lento?
mi código es como el siguiente:
for (int i = 0; i < newRisks.size(); i++) {
myRepository.save(newRisks.get(i));
System.out.println("saved " + newRisks.get(i).name);
}
Mi newRisks-matriz contiene alrededor de 60000 y 60000 objetos de bordes. Cada nodo y borde tiene una propiedad. La duración de este ciclo es de 15 a 20 minutos, ¿es esto normal? Utilicé Java VisualVM para buscar algunos cuellos de botella, pero el uso promedio de mi CPU fue del 10 al 25% (de 4 núcleos) y mi pila estaba menos de la mitad.
¿Hay alguna opción para impulsar esta operación?
EDIT: adicional es, en la primera llamada de myRepository.save(newRisks.get(i));
la JVM caer assleep FPR algunos minutos antes de la primera salida está llegando
Segunda EDIT:
Clase de riesgo:
@NodeEntity
public class Risk {
//...
@Indexed
public String name;
@RelatedTo(type = "CHILD", direction = Direction.OUTGOING)
Set<Risk> risk = new HashSet<Risk>();
public void addChild(Risk child) {
risk.add(child);
}
//...
}
Creación de riesgos:
@Autowired
private Repository myRepository;
@Transactional
public Collection<Risk> makeSomeRisks() {
ArrayList<Risk> newRisks = new ArrayList<Risk>();
newRisks.add(new Risk("Root"));
for (int i = 0; i < 60000; i++) {
Risk risk = new Risk("risk " + (i + 1));
newRisks.get(0).addChild(risk);
newRisks.add(risk);
}
for (int i = 0; i < newRisks.size(); i++) {
myRepository.save(newRisks.get(i));
}
return newRisks;
}
Según la [documentación] (http://static.springsource.org/spring-data/data-neo4j/docs/2.0.0.RC1/api/org/springframework/data/neo4j/repository/CRUDRepository. html), CRUDRepository.save puede tomar un Iterable como argumento. ¿Por qué no solo myRepository.save (newRisks)? – Thomas
intenté esto y funciona también. pero, no es más rápido. entonces puedo ver, él no está muerto ^^ – hilbert
podría mostrar la estructura de su clase y cualquier nodo-entidades y relaciones-entidades a las que se refiere. ¿Y el método de construcción de sus instancias de riesgo? –