[Python] django e strutture dati permanenti
Balan Victor
balan.victor0 a gmail.com
Mer 10 Ott 2012 14:01:27 CEST
quello che devo fare è questo:
in fase di inizializzazione devo caricare in memoria un grafo(networkx) di
dimensioni consistenti: 60.000 nodi e più di 100.000 connessioni. PER
ADESSO dovrebbe essere in sola lettura e se devo fare delle modifiche posso
permettermi di stoppare tutto, fare le modifiche e rilanciare
l'applicazione.
Poi in base alle richieste che vengono effettuate devo andare a leggere le
informazioni che mi servono dal grafo, elaborarle e restituirle all'utente.
Il giorno 10 ottobre 2012 12:46, Daniele Varrazzo <piro a develer.com> ha
scritto:
> On 2012-10-10 11:03, Marco Beri wrote:
>
>> 2012/10/10 Daniele Varrazzo <piro a develer.com>
>>
>> On 2012-10-10 09:03, Marco De Paoli wrote:
>>>
>>> Inoltre può esserti d'aiuto anche un occhiata al pattern Borg di Alex
>>>
>>>> Martelli
>>>>
>>>>
>>> Devo a questo cosiddetto pattern (è un'implementazione) le migliori ore
>>> della mia vita buttate in debug. Da non toccare neanche con una pertica.
>>>
>>
>>
>> :-))
>>
>> Cosa era successo? Più processi attivi? Race condition?
>>
>
> Cosa deve succedere? Quello per cui è progettato: tu hai l'istanza di un
> oggetto, chiami qualche funzione apparentemente non correlata e alla riga
> dopo quell'istanza si comporta in maniera inconsistente da due righe prima.
> Anche un programma single-thread diventa imprevedibile.
>
> È solo una variabile globale glorificata, ma col rischio che nasconde il
> fatto di esserla. Molto meglio un singleton (il vero pattern di cui il borg
> è un'implementazione): almeno è esplicito che tutti ci possono mettere le
> mani e non fai assunzioni fuori luogo che sia una variabile locale.
>
> Per la storia, il programma in questione era Epydoc. Aggiungi il fatto che
> lo stato di questi oggetti veniva modificato in maniera casuale tra un run
> e l'altro, a seconda di che ordine venivano letti i sorgenti... È stato
> probabilmente il bug più ''.join(unsorted('aaacccozz')) che abbia mai
> trattato. Semplicemente perché un'istanza "ammalata" di borg non si
> comporta come un regolare oggetto Python: a is b == False, eppure cambi a e
> ti cambia anche b: un comportamento del tutto prevedibile no?
>
>
>
> --
> Daniele Varrazzo - Develer S.r.l.
> http://www.develer.com
> ______________________________**_________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/**mailman/listinfo/python<http://lists.python.it/mailman/listinfo/python>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20121010/9b8d3346/attachment.html>
Maggiori informazioni sulla lista
Python