Il giorno mer, 18/12/2013 alle 00.20 +0100, Enrico Bianchi ha scritto: > 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) >
Sì scusa, nell'ambito delle scienze sociali abbiamo il viziaccio di chiamare "rete" ciò che in effetti si è sempre chiamato "grafo"... Trovo molto interessanti i due db che mi hai suggerito, dato che mi ricapiterà di sicuro di lavorare con grossi grafi. Ma nel caso specifico per usarli in RAM dovrei di nuovo usare tmpfs? E finché non ho bisogno di algoritmi di graph traversal (diciamo con path > 1), come efficienza sono analoghi a Redis? Riguardo al salvare/ricaricare database, forse l'errore che ho fatto fin dall'inizio è stato di non utilizzare semplicemente istanze diverse del server per database diversi (e vale per Redis, immagino, come per Neo4j e OrientDB). > > 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) D'accordo. Scusa la domanda forse stupida, ma così "a occhio" l'I/O a cui stai pensando è quello tra CPU e RAM, giusto? Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python