On 12/17/2013 04:37 PM, Pietro Battiston wrote:

  Ad
esempio un set di dati che utilizzo è la descrizione di una rete. Quindi
la struttura base è un semplice dizionario

{ "elemento1" : ["elemento53", "elemento114", "elemento54"],
   "elemento2" : ["elemento1", "elemento32"],
... }

Io ho bisogno di rispondere in modo più veloce possibile alla domanda "a
chi è collegato elementox?".
In teoria ti stavo rispondendo con un "Usa MongoDB" elencando le motivazioni per cui tale scelta sarebbe stata conveniente per il tuo caso. Poi pero`, leggendo meglio, mi sono soffermato meglio sull'esempio che hai riportato. Da quello che ho notato praticamente definisci una relazione di tipo gerarchico tra gli elementi, ovvero sei in uno scenario completamente gestito da un database a grafi (tanto che l'esempio della descrizione di una rete e` tipico per questi database). Con queste premesse, la scelta piu` corretta e` Neo4j o OrientDB, con preferenza per il primo soprattutto per un mero discorso di diffusione (OrientDB e` piu` "malleabile" in quanto permette una gestione sia a grafi che a documenti che a oggetti)

Se poi riuscissi a capire, a prescindere da tutto ciò, perché
l'operazione di riempire un database Redis da un dump json non utilizzi
al 100% né CPU né disco né RAM, la mia curiosità sarebbe soddisfatta.
Presumo che l'I/O non ci stia dietro, quindi le latenze sono alte (parlo ad occhio, non ho il sistema sotto mano ed e` impossibile capire con le informazioni che dai)

Enrico
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a