<div dir="ltr"><div>Me encantó la idea y la charla sobre memoria transaccional, virtual, compartida, multiproceso y sobre todo persistente. Y todo automágico de serie...<br></div><div class="gmail_extra"><div class="gmail_quote"><br></div><div class="gmail_quote">Un mundo idílico para todo programador... Da miedo...</div><div class="gmail_quote"><br></div><div class="gmail_quote">Mola que pypy investigue para proponer mejoras importantes a python. Ya veremos en que acaba.</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">2015-02-26 13:29 GMT+01:00 Jesus Cea <span dir="ltr"><<a href="mailto:jcea@jcea.es" target="_blank">jcea@jcea.es</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 26/02/15 13:17, <a href="mailto:piranna@gmail.com">piranna@gmail.com</a> wrote:<br>
> Lo de la clase base y lo de las instancias ghost parecen lo mas<br>
> eficiente, pero tienes que heredar de ella. ¿No se puede hacer que sea<br>
> de forma transparente para _todos_ los objetos de forma que si se va<br>
> la luz puedas continuar por donde estabas sin inmutarte? ¿Algo que<br>
> permita (al menos virtualmente) separar la linea de separacion entre<br>
> datos en RAM y datos en disco como propone el modelo de memoria del<br>
> proyecto The Machine de HP? Todos los objetos en Python tienen un id<br>
> unico que se podria usar de identificador, y tuneandolo incluso entre<br>
> maquinas distintas haciendo una especie de memoria distribuida...<br>
<br>
</span>En cualquier paso tendrías que modificar tu programa para que trabaje<br>
con transacciones.<br>
<br>
Si no lo haces así tienes el problema bastante más complejo de que el<br>
programa "arranque" exactamente en la misma posición ensamblador en la<br>
que se fue la luz. Esto no es trivial, aunque en su momento había<br>
proyectos interesantes basados en proteger la memoria para hacer una<br>
especie de "copy on write". Yo he usado tecnología de esta hace muchos<br>
años, en C. Persistía TODO: la memoria y el estado del proceso. Bastante<br>
espectacular. Había problemas con los descritores de ficheros y los<br>
sockets. En general es problemático mantener el estado de todo lo que<br>
está en la frontera del proceso en sí. Supón, por ejemplo, que quieres<br>
persistir dos procesos que están conectados con una PIPE.<br>
<br>
He usado estas tecnología para cosas como "checkpointing" de grandes<br>
trabajos de cálculo, pero no es la bala de plata para todo.<br>
<br>
Si tu programa usa transacciones no necesitas recuperar el estado<br>
completo del proceso. Solo su memoria. Infinitamente más sencillo.<br>
<br>
Además, manejar transacciones te facilita la recuperación ante errores<br>
en medio de una operación. Si te salta una excepción en medio de una<br>
transacción, simplemente haces un "rollback" de los cambio y todo queda<br>
estable y bonito.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Jesús Cea Avión _/_/ _/_/_/ _/_/_/<br>
<a href="mailto:jcea@jcea.es">jcea@jcea.es</a> - <a href="http://www.jcea.es/" target="_blank">http://www.jcea.es/</a> _/_/ _/_/ _/_/ _/_/ _/_/<br>
Twitter: @jcea _/_/ _/_/ _/_/_/_/_/<br>
jabber / <a href="mailto:xmpp%3Ajcea@jabber.org">xmpp:jcea@jabber.org</a> _/_/ _/_/ _/_/ _/_/ _/_/<br>
"Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/<br>
"My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/<br>
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz<br>
<br>
</div></div><br>_______________________________________________<br>
Asociación Python España: <a href="http://www.es.python.org/" target="_blank">http://www.es.python.org/</a><br>
Python Madrid: <a href="http://www.python-madrid.es/" target="_blank">http://www.python-madrid.es/</a><br>
Madrid mailing list<br>
<a href="mailto:Madrid@lists.es.python.org">Madrid@lists.es.python.org</a><br>
<a href="https://lists.es.python.org/listinfo/madrid" target="_blank">https://lists.es.python.org/listinfo/madrid</a><br></blockquote></div><br></div></div>