Il giorno dom, 15/12/2013 alle 22.24 +0000, A. Cavallo ha scritto: > Dipende tutto dalla mole di dati. Sopra 1T? Fino a diciamo 500Gb la > soluzione più semplice è un disco sdd pcie, oramai costano sotto i > 1000euri e puoi usare un DB tradizionale. > Redis è adatto in certi scenari ma non rimpiazza un DB (può in sempre > usare un DB relazionale come nosql). >
?! Nel mio scenario, se dovessi (costretto con le spalle al muro) sostituire Redis lo sostituirei con un dizionario Python, che potrebbe aumentare un po' l'efficienza, a costo però di costringermi a legare i dati ad un processo specifico. Quindi se vuoi sono i dump di Redis che rimpiazzano veramente un database per me. E in questa situazione se volessi investire in hardware, comprerei più RAM (dato che gli SSD sono almeno un ordine di grandezza più lenti). (per la cronaca: se ci fosse un modo più pratico/rodato/efficiente per fare il dump e ricaricare dei singoli database json sarei interessatissimo - ma non ho trovato niente, e non ho voglia di scrivermi codice ad hoc) Vorrei solo capire dov'è il bottleneck, dato che né CPU né disco (né RAM) sono utilizzati al massimo. Ma è una curiosità intellettuale (dato che comunque la CPU è utilizzata all'80%, quindi il guadagno pratico da un'eventuale illuminazione sarebbe limitato). ciao Pietro > Pietro Battiston <m...@pietrobattiston.it> wrote: > Salve a tutti, > > dopo l'ultima discussione in cui sono stato invitato a verificare se > ci > guadagnassi veramente qualcosa a mappare con oggetti le mie tabelle > SQL, > mi sono reso conto... che l'SQL era semplicemente lo strumento > sbagliato > per me. Ed ho scoperto redis. > > L'unico mio problema con redis è che devo usare svariati database > diversi, che non stanno tutti in memoria. Però posso caricarli quando > mi > servono, con redis-dump-load.¹ > > Qui veniamo alla domanda: per fare ciò, i database devono essere > salvati > su disco in formato json (e qui l'efficienza è un problema secondario, > dato che lo faccio una volta sola) e ricaricati. Ricaricarli è > un'operazione che mi prende parecchio tempo (nel senso che devo anche > farla svariate volte). Ha certamente a che fare con il fatto che il > mio > computer non è una scheggia (N.B: il bottleneck non è il disco), però > comunque mi stupisce che, su > due core che ho, l'utilizzo (verificato con > un brutale "top") rimanga intorno al 80% di python + i 35% di redis. > Non > ho altri processi impegnino il processore in maniera significativa > (tant'è che nella successiva fase di analisi dei dati, python è fisso > al > 100%). > > Ho letto che redis può essere nettamente più efficiente se si usa un > socket unix invece che TCP-IP, ed in effetti provando ho notato un > certo > incremento di prestazioni (con il TCP-IP, le cifre erano piuttosto 70% > di python + 30% di redis). > > Sapete dirmi se potrei fare qualcosa di più? O se dovrei arrendermi? > > grazie > > Pietro > > ¹ : https://github.com/p/redis-dump-load/ > > > ______________________________________________________________ > > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python