[Python] Python, redis e bottleneck

Enrico Bianchi enrico.bianchi a ymail.com
Mer 18 Dic 2013 00:20:55 CET


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


Maggiori informazioni sulla lista Python