Il 12/05/2013 11:03, Marco Beri ha scritto:
2013/5/12 Diego Barrera <diegonebarr...@yahoo.it
<mailto:diegonebarr...@yahoo.it>>
Se la struttura non e' molto grande, potresti gestirla facendo una
copia di backup temporanea della struttura, se qualcosa va storto
rimuovi la struttura corrotta e rinomini quella di backup.
Ciao diego
Se potesse permetterselo (ma ha già detto che non può) la cosa giusta
sarebbe fare la copia su cui fare le modifiche e, solo come atto
"atomico" finale, fare una move sulla copia di backup. Qualunque cosa
vada male, ha la copia vera, attiva, senza problemi. Facendo come dici
tu, se le cose vanno a schifio tra la verifica della corruzione e la
rinomina della copia di backup, è fregato.
Pensavo che fosse equivalente l'approccio
La parola chiave è "atomica". La rename dovrebbe essere una operazione
atomica a livello di file system e quindi va per forza usata quella se
uno vuole essere sicuro di fare un cambio solo finale che lo porta
alla nuova situazione.
Certo, poi servirebbe anche che nessuno facesse modifiche alla
struttura che il programma ha copiato e su cui sta effettuando le
modifiche.
Per capire: i problemi di concorrenza e atomicita' delle operazioni sul
filesystem non sono intrinseci alla struttura da lui utilizzata?
Altra riflessione: come approcciano i software di versioning al problema?
Ciao
buona domenica
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python