[Python] Come gestireste una funziona di rollback

Marco Beri marcoberi a gmail.com
Dom 12 Maggio 2013 11:03:22 CEST


2013/5/12 Diego Barrera <diegonebarrera a 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.

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.

Insomma, spostare il concetto di "transazionalità" al file system è
veramente un problema non da poco:
http://en.wikipedia.org/wiki/File_system#Transactional_file_systems

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130512/711e8ac4/attachment.html>


Maggiori informazioni sulla lista Python