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

Jose Luis jleahred at gmail.com
Thu Feb 26 20:52:54 CET 2015


Me encantó la idea y la charla sobre memoria transaccional, virtual,
compartida, multiproceso y sobre todo persistente. Y todo automágico de
serie...

Un mundo idílico para todo programador... Da miedo...

Mola que pypy investigue para proponer mejoras importantes a python. Ya
veremos en que acaba.




2015-02-26 13:29 GMT+01:00 Jesus Cea <jcea at jcea.es>:

> 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
>
>
> _______________________________________________
> Asociación Python España: http://www.es.python.org/
> Python Madrid: http://www.python-madrid.es/
> Madrid mailing list
> Madrid at lists.es.python.org
> https://lists.es.python.org/listinfo/madrid
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.es.python.org/pipermail/madrid/attachments/20150226/7c21d170/attachment.html>


More information about the Madrid mailing list