Forum: Rails-ES cachear querys ActiveRecord? cual es es la mejor opción?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-19 03:25
(Received via mailing list)
Hola a todos,

estoy en un proyecto de desarrollo con Rails , donde la aplicacion hace
un
uso intensivo de consultas activeRecord, me refiero a una aplicacion que
consulta sin parar la base de datos (uf..), ya que una de sus
funcionalidades es mostrar una serie de datos de forma recursiva.

dado eso , me preocupa que esta funcionalidad pueda afectar la
performance
de la aplicacion ya que es justamente esta una de las funcionalidades
publicas que serán accesibles por los usuarios.

haciendo un shopping de plugins , encontré estos que podrian ajustarse a
mi
necesidad:

https://github.com/nkallen/cache-money/tree , en este encontré algunas
limitancias , como el soporte para joins ,y de operadores como IN , != ,
etc..

https://github.com/ferblape/query_memcached/tree, quizas este sea la
mejor
opción , tengo entendido que guarda los resultados en memcache en lugar
de
guardarlos en memoria cada vez que se consultan.

alguien ya está utilizando este plugin en producción?
si es asi, puede cachear cualquier tipo de consulta, el expire cache es
automagico?


gracias de antemano

saludos cordiales


Atte.
Miguel Michelson Martinez
6f952bee7570a3db2ecba5b06c0062b3?d=identicon&s=25 Fernando Guillen (fguillen)
on 2008-12-19 09:19
(Received via mailing list)
Blat, te llaman


(Perdón por la sintaxis, escrito desde el móvil)
--
Fernando Guillén
Desarrollador Web Freelance
http://fernandoguillen.info

El 19/12/2008, a las 3:25, "Miguel Michelsongs"
<miguelmichelson@gmail.com
 > escribió:
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-12-19 09:48
(Received via mailing list)
>>Blat, te llaman??????

Se que escribes desde el movil. Pero para un novato eso que has
escrito no es una respuesta que aporte mucho al hilo ¿no crees?

El día 19 de diciembre de 2008 9:19, Fernando Guillen
<fguillen.mail@gmail.com>
escribió:> Blat, te llaman
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2008-12-19 10:22
(Received via mailing list)
2008/12/19 Andrés gutiérrez <andresgutgon@gmail.com>

> >>Blat, te llaman??????
>
> Se que escribes desde el movil. Pero para un novato eso que has
> escrito no es una respuesta que aporte mucho al hilo ¿no crees?
>


No, pero al encender la Blatseñal y reclamar la atención del insigne
Fernando Blat, autor del segundo plugin mencionado, ha hecho lo posible
para
que éste conteste a Michael personalmente, lo cuál sí es una
contribución ;)
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-12-19 10:34
(Received via mailing list)
Joder!!! lo que me queda para pillaros (si algún dia soy capaz).
Una pregunta, Fernando: ¿podrías exponer tu punto de vista en este hilo?

Y manuel, de verás has de entender que no todos conocemos a todos y
mucho menos quien ha hecho que. He de decir que a Fernando ya le
conocia, pero no he caido.

Saludos

El día 19 de diciembre de 2008 10:22, Manuel González Noriega
<manuel.gonzalez.noriega@gmail.com>
escribió:> 2008/12/19 Andrés gutiérrez <andresgutgon@gmail.com>
348246701cfdb2130b842fd839751a18?d=identicon&s=25 Raul Murciano (raul)
on 2008-12-19 11:17
(Received via mailing list)
Hola, sólo comentar que en domestika.org usamos el query_memcached de
Fernando y estamos más que contentos: tiene una instalación trivial
(bueno, necesitas memcached) y la mejora del rendimiento ha sido muy
notable. Lo recomendaría especialmente en aquellos sites en los que se
repiten consultas de lectura en distintas requests y se hace difícil
usar cacheo en las acciones.

En fin, otra demostración de que Blat es un crack :)
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-12-19 11:40
(Received via mailing list)
¿Blat es un crak?
No le conozco y no tengo el nivel suficiente como para saber si su
codigo es estupendo, pero por los comentarios de la lista. YO apuesto
a que lo es :-|

Saludos

Nota:
Los viernes, los temas de la lista siempre son un poco mas terrenales
y raileros :-)

El día 19 de diciembre de 2008 11:16, Raul Murciano
<raul@murciano.net>
escribió:> Hola, sólo comentar que en domestika.org usamos el query_memcached de
89e7c8b162c71e9905fbfe7d2ec376dc?d=identicon&s=25 Fernando Blat (ferblape)
on 2008-12-19 13:20
(Received via mailing list)
Hola,

cómo bien dice Raúl el querymemcached es completamente transparente de
instalar y te da bastante recorrido, aunque tiene algunos problemas en
cuanto a la finura de la expiración: cualquier modificación sobre
cualquier registro de una tabla expira la caché de esa tabla, lo cuál
no es muy óptimo.

Por otro lado la de twitter permite ser mucho más detallista y cachear
sólo aquello que quieres. Es decir, requiere más trabajo por tu parte.

No creo que sea descabellado utilizar los dos. Nosotros no lo
descartamos en La Coctelera.

2008/12/19 Andrés gutiérrez <andresgutgon@gmail.com>:
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-19 14:12
(Received via mailing list)
Hola a todos,

muchas gracias por la ayuda,

voy a hacer las pruebas con el query_memcached y les cuento como me va

muchas gracias

Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/19 Fernando Blat <ferblape@gmail.com>
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-19 18:18
(Received via mailing list)
Hola

al parecer no he podido hacer que funcione query_memcached, pues ya lo
he
instalado,
estoy en OSX leopard y tengo memcache iniciado:  memcached -d -m 24 -p
11212,

y mi configuracion en environment/s pueden verla aqui:

 http://pastie.org/343327


pero en la consola el log de las querys mysql aparece como que siempre
se
consultara a la BD, no me dice nada de CACHE 0.0000 o algo asi

¿me falta algo para que funcione?

Saludos


Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/19 Miguel Michelsongs <miguelmichelson@gmail.com>
89e7c8b162c71e9905fbfe7d2ec376dc?d=identicon&s=25 Fernando Blat (ferblape)
on 2008-12-19 18:27
(Received via mailing list)
Cuidado, si el memcached lo lanzas en el puerto 11212 y en el
environment indicas que está en el 11211 no puede funcionar.

¿Es por eso?

Por otro lado sólo funciona si tienes indicado perform_caching = true
en el entorno correspondiente.

2008/12/19 Miguel Michelsongs <miguelmichelson@gmail.com>:
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-19 18:31
(Received via mailing list)
Hola Fernando,

tengo dos instancias de memcache iniciadas y una esta en el 11211, al
parecer hice el cut&paste incorrecto

#ps -aux | grep memcached

miguelmichelson 40098   0.0  0.0   601844    308   ??  Ss    1:39PM
0:00.10 memcached -d -m 24 -p 11212
miguelmichelson 40090   0.0  0.0   601844    312   ??  Ss    1:38PM
0:00.10 memcached -d -m 24 -p 11211

estoy iniciando el server como

#script/server -e dev_with_caching

la configuracíon que tengo hasta ahora la puedes revisar aqui

http://pastie.org/343327


me parece que esta todo en orden, pero al parecer no funciona

saludos y gracias!


Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/19 Fernando Blat <ferblape@gmail.com>
89e7c8b162c71e9905fbfe7d2ec376dc?d=identicon&s=25 Fernando Blat (ferblape)
on 2008-12-20 10:45
(Received via mailing list)
Pues no se me ocurre... ¿Qué versión de Rails es?

De todas formas, lo que tienes en el environment.rb y en el
dev_with_cache.rb es redundante, porque estás inicializando dos veces
el objeto CACHE.

De hecho, en Rails 2.2 ya no hay un objeto CACHE, sino que se utiliza
Rails.cache, que Rails asigna automágicamente cuando ejecuta esta
línea:

config.cache_store = :mem_cache_store, 'localhost:11211',
memcache_options

Así que puedes borrar esas líneas del environment tranquilamente, que
quizá sea eso.

2008/12/19 Miguel Michelsongs <miguelmichelson@gmail.com>:
89e7c8b162c71e9905fbfe7d2ec376dc?d=identicon&s=25 Fernando Blat (ferblape)
on 2008-12-20 20:46
(Received via mailing list)
Hola,

acabo de darme cuenta de un bug en la última versión que commiteé.

Por favor, vuelve a bajarte el plugin e inténtalo de nuevo que ahora
sí que te funcionará :)

2008/12/20 Fernando Blat <ferblape@gmail.com>:
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-20 21:06
(Received via mailing list)
a há, perfecto Fernando,

muchas gracias por dar el aviso.

la aplicacion la tengo en la oficina, por lo que la probaré el mismo
lunes.

ya les contaré como me fue con esto.


Saludos!


Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/20 Fernando Blat <ferblape@gmail.com>
89e7c8b162c71e9905fbfe7d2ec376dc?d=identicon&s=25 Fernando Blat (ferblape)
on 2008-12-22 11:17
(Received via mailing list)
Échale un vistazo a esto, porque ha habido algunos cambios más:

http://www.inwebwetrust.net/post/2008/12/21/updati...

2008/12/20 Miguel Michelsongs <miguelmichelson@gmail.com>:
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-22 15:47
(Received via mailing list)
Hola Fernando como estas,

 he actualizado el plugin y he seguido las instrucciones del readme

pero estoy recibiendo esto en la consola

 Tag Load (0.002060)   SELECT `tags`.* FROM `tags` INNER JOIN taggings
ON
tags.id = taggings.tag_id WHERE ((`taggings`.taggable_type = 'Phrase')
AND
(`taggings`.taggable_id = 2857))
Cache write: 0_4f6765bf92eba4878ae57b5df901f1cc (600 seconds)
Cache read: 0_108c6f71aac8f781cac6f5fe2d32c453 (600 seconds)
MemCacheError (unexpected response "ERROR\r\n"): unexpected response
"ERROR\r\n"

me parece que hay un error ahi.


una pregunta:

,¿ el plugin al haber cambiado , ahora solo se actualiza el cache por
periodos de tiempo?  y no por si las tablas relacionadas cambian( se
eliminan, actualizan etc ..), que era lo que antes hacia ?


muchas gracias





Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/22 Fernando Blat <ferblape@gmail.com>
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-22 16:59
(Received via mailing list)
Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/22 Miguel Michelsongs <miguelmichelson@gmail.com>

> Cache read: 0_108c6f71aac8f781cac6f5fe2d32c453 (600 seconds)
> MemCacheError (unexpected response "ERROR\r\n"): unexpected response
> "ERROR\r\n"
>

y aca esta el log de memcached:

http://pastie.org/344863
89e7c8b162c71e9905fbfe7d2ec376dc?d=identicon&s=25 Fernando Blat (ferblape)
on 2008-12-23 00:15
(Received via mailing list)
Hola Miguel,

el cambio de ahora sí que implica que la caché se expira cada cuanto
tú le digas, o 90 minutos si no indicas otro rango de tiempo. Mírate
en el README la sintaxis exacta...

El error que me comentas me gustaría mirarlo más a fondo. SI no te
importa, mándame los datos a mi dirección de email y dejamos ya de
molestar en la lista.

2008/12/22 Miguel Michelsongs <miguelmichelson@gmail.com>:
Bf47b813b0de4867a015fd4b54ac2fb4?d=identicon&s=25 Miguel Michelson (samek)
on 2008-12-23 02:14
(Received via mailing list)
Perfecto,

muchas gracias


Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2008/12/22 Fernando Blat <ferblape@gmail.com>
This topic is locked and can not be replied to.