[pyar] [Aporte] Para los que estan escribiendo proyectos.

Claudio Freire klaussfreire en gmail.com
Jue Oct 21 18:50:44 ART 2010


2010/10/21 QliX=D! [aka EHB] <qlixed en gmail.com>

> 2010/10/21 Juan Carlos Ojeda <juancarlospaco en gmail.com>:
> >
> >
> [...]
>
> > Correcto!, eso es lo que queria decir.
> > Por eso en realidad hacer un file.close() con os.fsync() no sirve hoy dia
> > con EXT4 o superior.
>
> Que????. - No nada q ver segun tengo entendido :)
>
> A ver.
> Hay 3 capas en el cacheo de disco si mal no recuerdo, y se agrega una
> "semi cuarta" capa en los journals FS:
> 1) Aplicacion (digamos q con fflush de C lo salvas)
> 2) VFS o FS (Con un Sync le indcas que baje todo a disco)
> 2.b) Journal FS: El sync solo asegura que el Journal se guarde, no que
> se modifique el bloque fisico del disco real.
> 3) Disk Buffer - Buffer de disco Hardware (en controladora digamos).
>

A grandes rasgos es así.

Realmente, las aplicaciones (python o lo que sea) no deberían preocuparse
más que por hacer fflush (o fclose).

Sync a nivel sistema entero sólo se hace antes de desmontar un disco. No es
cosa de una aplicación, a menos que la aplicación sea un script de sistema.

Una base de datos seguramente va a querer usar fsync para hacer sync de un
archivo en particular (una tabla, índice o WAL), pero muy pocas aplicaciones
realmente quieren hacer eso.

Cortar la corriente indefectiblemente introduce un riesgo de pérdida de
datos... pensar que hacer sync evita eso es ser ingénuo (ej: se te corta la
corriente antes de hacer sync - o durante). Sync/fsync se usa como barrera
(ej: antes de reportar "committed" una base de datos hace fsync, para poder
asegurar persistencia de los datos que reportó como persistidos). Es una
operación que por su definición atenta contra la performance y sólo debería
hacerse cuando la integridad *debe garantizarse*. No hacerlo no implica
perder datos más de lo que cualquier usuario normal esperaría (yo no espero
no perder datos si desenchufo la compu sin aviso previo al SO).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101021/b5980e58/attachment.html>


More information about the pyar mailing list