[Python] django e strutture dati permanenti

Balan Victor balan.victor0 a gmail.com
Mer 10 Ott 2012 20:00:56 CEST


idee? :)


Il giorno 10 ottobre 2012 14:01, Balan Victor <balan.victor0 a gmail.com> ha
scritto:

> 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/29ecf9a7/attachment.html>


Maggiori informazioni sulla lista Python