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

Rispondere a