Persistencia en Squeak

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Persistencia en Squeak

Ricardo Moran
Una de las cosas que más me joden (y creo que la mayor parte del mundo
concuerda en esto) es el laburo extra que representa tener que
persistir los objetos cuando se depende de bases de datos relacionales.
La solución que propone Smalltalk a la persistencia me parece muy
copada: todos los objetos son persistentes, y siempre y cuando me
encargue de grabar la imagen puedo cerrar y volver a abrir teniendo la
seguridad de que los objetos van a estar ahí cuando vuelva.
Sin embargo, todavía dependo de las bases de datos cuando la cantidad
de objetos crece demasiado, porque cargar todo a memoria resulta
ineficiente.
Por ahi lo que voy a decir a continuación es una burrada, o alguien lo
probó y no funcionó, o por ahi existe y yo no lo conozco, pero...
¿No estaría bueno un Smalltalk que trabaje directamente con el disco y
use la memoria Ram como caché?
De esta forma todos los objetos serían persistentes de forma
transparente, con la ventaja de poder tener miles o millones de
objetos en la imagen sin llenar la memoria RAM (¡y adiós a las bases
de datos! :D).
Obviamente sería más lento dados los tiempos del disco y de la memoria
ram, ¿pero si se implementa de la manera correcta no podría tener una
performance aceptable?
Digo, se podría trabajar en memoria y periódicamente (cuando impacte
menos en el rendimiento) un objeto podría volcar ese trabajo en disco
(tipo el garbage collector pero al reves).
Asimismo, habría que ampliar el comportamiento del garbage collector
para que libere espacio en disco y no sólo en Ram.
O sea, no se cómo hacerlo, pero igual me pareció una buena idea.

Reply | Threaded
Open this post in threaded view
|

Re: Persistencia en Squeak

Edgar J. De Cleene



El 11/6/07 6:30 PM, "richi.moran" <[hidden email]> escribió:

> Una de las cosas que más me joden (y creo que la mayor parte del mundo
> concuerda en esto) es el laburo extra que representa tener que
> persistir los objetos cuando se depende de bases de datos relacionales.
> La solución que propone Smalltalk a la persistencia me parece muy
> copada: todos los objetos son persistentes, y siempre y cuando me
> encargue de grabar la imagen puedo cerrar y volver a abrir teniendo la
> seguridad de que los objetos van a estar ahí cuando vuelva.
> Sin embargo, todavía dependo de las bases de datos cuando la cantidad
> de objetos crece demasiado, porque cargar todo a memoria resulta
> ineficiente.
> Por ahi lo que voy a decir a continuación es una burrada, o alguien lo
> probó y no funcionó, o por ahi existe y yo no lo conozco, pero...
> ¿No estaría bueno un Smalltalk que trabaje directamente con el disco y
> use la memoria Ram como caché?
> De esta forma todos los objetos serían persistentes de forma
> transparente, con la ventaja de poder tener miles o millones de
> objetos en la imagen sin llenar la memoria RAM (¡y adiós a las bases
> de datos! :D).
> Obviamente sería más lento dados los tiempos del disco y de la memoria
> ram, ¿pero si se implementa de la manera correcta no podría tener una
> performance aceptable?
> Digo, se podría trabajar en memoria y periódicamente (cuando impacte
> menos en el rendimiento) un objeto podría volcar ese trabajo en disco
> (tipo el garbage collector pero al reves).
> Asimismo, habría que ampliar el comportamiento del garbage collector
> para que libere espacio en disco y no sólo en Ram.
> O sea, no se cómo hacerlo, pero igual me pareció una buena idea.
>
Una de las cositas que Ralph me ha transmitido en los correos privados , es
que con el costo decreciente de la memoria esto no seria un problema como
alguna vez.
En uno de los ESUG anteriores, los alemanes presentaron algo para millones
de objetos, pero no tengo la referencia a mano,

De que tamaño de base de datos hablamos ?

Edgar


Reply | Threaded
Open this post in threaded view
|

Re: Persistencia en Squeak

Ricardo Moran
La verdad no estaba pensando en ningún proyecto en particular sino en
aquellos proyectos en que usar sólo la RAM resulta ineficiente (no se
cuántos objetos son necesarios para que ésto suceda).
Todo esto viene a mi mente porque encuentro bastante fastidioso tener
que preocuparme por la persistencia.
Smalltalk la resuelve de una forma que, a mi gusto, se podría mejorar
(si bien es más que lo que tengo en otros entornos).
Por ejemplo: me ha pasado, después de mucho boludear con Squeak,
terminar con imágenes que superan los 100 mb y se pone engorroso
correr una imagen de tanto tamaño. Y eso que ni siquiera estaba
trabajando en algo "pesado", sólo jugando.
Por eso, para ciertas aplicaciones, se termina necesitando una base de
datos y pienso que, teniendo un sistema que provee de persistencia
transparente, no aprovecharlo es un desperdicio.
Para aprovecharlo hay que hacer algunas modificaciones, yo quería
saber si alguien las hizo ya y cómo resultaron.
Si nadie lo hizo todavía (lo cual me parece improbable), entonces creo
que es algo interesante para discutir.

Reply | Threaded
Open this post in threaded view
|

Re: Re: Persistencia en Squeak

garduino
A la corta o a la larga todo termina escrito en un disco y de alguna forma
levantado a RAM.

Miraste las bases de objetos, como Magma o esquemas como Prevayler?

-gsa.



El día 7/11/07, richi.moran <[hidden email]> escribió:

>
>   La verdad no estaba pensando en ningún proyecto en particular sino en
> aquellos proyectos en que usar sólo la RAM resulta ineficiente (no se
> cuántos objetos son necesarios para que ésto suceda).
> Todo esto viene a mi mente porque encuentro bastante fastidioso tener
> que preocuparme por la persistencia.
> Smalltalk la resuelve de una forma que, a mi gusto, se podría mejorar
> (si bien es más que lo que tengo en otros entornos).
> Por ejemplo: me ha pasado, después de mucho boludear con Squeak,
> terminar con imágenes que superan los 100 mb y se pone engorroso
> correr una imagen de tanto tamaño. Y eso que ni siquiera estaba
> trabajando en algo "pesado", sólo jugando.
> Por eso, para ciertas aplicaciones, se termina necesitando una base de
> datos y pienso que, teniendo un sistema que provee de persistencia
> transparente, no aprovecharlo es un desperdicio.
> Para aprovecharlo hay que hacer algunas modificaciones, yo quería
> saber si alguien las hizo ya y cómo resultaron.
> Si nadie lo hizo todavía (lo cual me parece improbable), entonces creo
> que es algo interesante para discutir.
>
>  
>



--
Germán S. Arduino
http://www.arsol.biz
http://www.arsol.net
Reply | Threaded
Open this post in threaded view
|

Re: Persistencia en Squeak

Ricardo Moran

> A la corta o a la larga todo termina escrito en un disco y de alguna
forma
> levantado a RAM.
>
> Miraste las bases de objetos, como Magma o esquemas como Prevayler?
>
> -gsa.

No entiendo cuál es la ventaja de usar Prevayler en Smalltalk.
Por lo que estuve leyendo básicamente la idea es mantener todos los
objetos en RAM y bajarlos a disco periódicamente.
¿Cuál es la diferencia entonces con usar una imagen y grabarla
periódicamente?
Entiendo que para la gente de Java resulte novedoso porque no trabajan
basado en una imagen, pero es justamente el esquema del que me quejo:
me  cuesta creer que para proyectos más grandes resulte viable
mantener toda la info en RAM.

Reply | Threaded
Open this post in threaded view
|

Re: Re: Persistencia en Squeak

garduino
No digo que sea Prevayler lo que tengas q usar........digo que son opciones
que ya
están disponibles en Squeak.........Yo particularmente donde no puedo usar
la imagen
estoy probando con Magma.........aun no tengo muchas conclusiones, pero creo
que es
el camino q más me gusta.

Saludos.


El día 8/11/07, Ricardo Moran <[hidden email]> escribió:

>
>
> > A la corta o a la larga todo termina escrito en un disco y de alguna
> forma
> > levantado a RAM.
> >
> > Miraste las bases de objetos, como Magma o esquemas como Prevayler?
> >
> > -gsa.
>
> No entiendo cuál es la ventaja de usar Prevayler en Smalltalk.
> Por lo que estuve leyendo básicamente la idea es mantener todos los
> objetos en RAM y bajarlos a disco periódicamente.
> ¿Cuál es la diferencia entonces con usar una imagen y grabarla
> periódicamente?
> Entiendo que para la gente de Java resulte novedoso porque no trabajan
> basado en una imagen, pero es justamente el esquema del que me quejo:
> me cuesta creer que para proyectos más grandes resulte viable
> mantener toda la info en RAM.
>
>  
>



--
Germán S. Arduino
http://www.arsol.biz
http://www.arsol.net
Reply | Threaded
Open this post in threaded view
|

Re: Persistencia en Squeak

Ricardo Moran
Voy a probar entonces las bases de objetos y luego les digo.
Gracias!