Persistencia de datos en RAM

Jesus Cea jcea en argo.es
Mar Ago 1 20:52:22 CEST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Entonces lo que se me ocurrio es cargar desde python
> estos datos en RAm y que los script CGI Python usen
> sus datos en lugar de llamar al motor nuevamente.

Durus no carga todos tus datos en RAM. Solo carga los que vas
referenciando. Es decir, cuando accedes a un objeto que no está en RAM,
Durus lo carga automáticamente, de forma transparente (tu programa ni se
entera). Asimismo, cuando tu memoria se llena, Durus elimina de memoira
los objectos que hace más tiempo que no se tocan, también de forma
transparente. Si modificas algún objeto, Durus se encarga de almacenarlo
en disco cuando haces un "commit()", sin tener que grabar nada de forma
explícita. Y lo hace de forma transaccional.

> Estuve leyendo las paginas de DURUS que me linkeaste y
> veo que se utiliza contra bases de datos.

No, para nada.

Durus no necesita ni utiliza una base de datos. Mi "pluging" basado en
BerkeleyDB es conveniente cuando tienes muchas modificaciones o un
número de objectos muy elevado (cientos de millones). Pero la versión
"estándar" de Durus no usa ningún tipo de base de datos.

> Ah importante a
> considerar es que obviamente si hay una actualizacion
> en la base de datos, los datos en RAM tambien deben
> actualizarse.

Lo fácil es tener una clave autoincremental en cada registro, y
conservar en memoria el último valor. Cuando se inicia un ciclo de
cálculo, comparamos el número de secuencia en memoria con la base de
datos y, si es necesario, leemos exclusivamente los registros nuevos.

Pero no sé hasta qué punto no será más inteligente, eficiente y simple
utilizar Durus de forma nativa, sin conectarlo a nada más.

> Bueno espero me expliques para comenzar a utilizar
> DURUS.

Lo que debes recordar es que Durus no es una base de datos, sino un
sistema de persistencia. Si no es eso lo que buscas...

Por tu explicación, lo que quieres es tener en RAM los datos que
necesitas para evitar cargar la base de datos, pero yo te sugeriría que
comprobases primero hasta qué punto te penaliza acceder a la base de
datos, sobre todo porque si trabajas con la copia en memoria a) te
consuma RAM extra y b) sigues necesitando esa sincronización con la base
de datos.

Si este proyecto fuera mío, modificaría asterisk para utilizar Durus de
forma nativa, sin postgresql. Pero yo es que soy que los que piensan que
SQL es inapropiado o innecesario para el 99.999% de las aplicaciones en
las que se utiliza.

- --
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea en argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
jabber / xmpp:jcea en 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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBRM+i5plgi5GaxT1NAQJjZwP+LxDAB61GJWcD8grw4F8WclO2S56uWjA2
kHKaC/TU7yqJeuOvONjWE70IIC5K93WJwF3fsCYCn64FSHdLBsosX52jbJG3uU/b
HDGVPxSwBGRL35gZVFpB/8DS8hsVgfZn0Rc/HHJ42LlGka3k4vmNOG/xdxSrjzBE
h5GLMf6E0uU=
=jOic
-----END PGP SIGNATURE-----
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es