[Py-MAD] Presentación "Persistencia en Python"

Jesus Cea jcea at jcea.es
Thu Feb 26 13:29:25 CET 2015


On 26/02/15 13:17, piranna at gmail.com wrote:
> Lo de la clase base y lo de las instancias ghost parecen lo mas
> eficiente, pero tienes que heredar de ella. ¿No se puede hacer que sea
> de forma transparente para _todos_ los objetos de forma que si se va
> la luz puedas continuar por donde estabas sin inmutarte? ¿Algo que
> permita (al menos virtualmente) separar la linea de separacion entre
> datos en RAM y datos en disco como propone el modelo de memoria del
> proyecto The Machine de HP? Todos los objetos en Python tienen un id
> unico que se podria usar de identificador, y tuneandolo incluso entre
> maquinas distintas haciendo una especie de memoria distribuida...

En cualquier paso tendrías que modificar tu programa para que trabaje
con transacciones.

Si no lo haces así tienes el problema bastante más complejo de que el
programa "arranque" exactamente en la misma posición ensamblador en la
que se fue la luz. Esto no es trivial, aunque en su momento había
proyectos interesantes basados en proteger la memoria para hacer una
especie de "copy on write". Yo he usado tecnología de esta hace muchos
años, en C. Persistía TODO: la memoria y el estado del proceso. Bastante
espectacular. Había problemas con los descritores de ficheros y los
sockets. En general es problemático mantener el estado de todo lo que
está en la frontera del proceso en sí. Supón, por ejemplo, que quieres
persistir dos procesos que están conectados con una PIPE.

He usado estas tecnología para cosas como "checkpointing" de grandes
trabajos de cálculo, pero no es la bala de plata para todo.

Si tu programa usa transacciones no necesitas recuperar el estado
completo del proceso. Solo su memoria. Infinitamente más sencillo.

Además, manejar transacciones te facilita la recuperación ante errores
en medio de una operación. Si te salta una excepción en medio de una
transacción, simplemente haces un "rollback" de los cambio y todo queda
estable y bonito.

-- 
Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/
jcea at jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/
jabber / xmpp:jcea at jabber.org  _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.es.python.org/pipermail/madrid/attachments/20150226/4fb1ca9e/attachment.asc>


More information about the Madrid mailing list