2011-03-14 10 views
5

¿Cuán grande es el cambio de penalización de rendimiento de la cookieStore a ActiveRecord SessionStore?rendimiento de ActiveRecord SessionStore

De forma predeterminada, Ruby on Rails usa CookieStore. Pero tiene la desventaja de que el cliente necesita tener sus cookies habilitadas.

El cambio a Active SessionStore parece resolver ese problema. Estoy considerando cambiarme.

He leído que el rendimiento es peor usando ActiveRecord SessionStore. Pero, ¿qué es peor? ¿Lo notará un usuario o será cuestión de milisegundos? ¿Alguien ha visto resultados comparativos que comparan las 2 opciones?

¿Alguna otra razón (no) para cambiar al ActiveStore de ActiveRecord?

Respuesta

4

Lo que es peor es que necesita consultar una base de datos, que luego necesita calcular la respuesta, en lugar de ir directamente a la cookie en el lado del cliente.

Sin embargo, ¿es realmente tan malo? Tiene razón en que la diferencia de rendimiento es muy minúscula en la mayoría de los casos.

Pros:

por afinidad Si su aplicación web cada vez se expande a más de un servidor, moviendo sus sesiones a una base de datos puede permitir ejecutar sus servidores sin server affinity.

Seguridad - Como solo almacena la ID de sesión en el lado del cliente, esto reduce las posibilidades de que el usuario manipule cualquier dato por el lado del cliente.

Contras

rendimiento - en lugar de consultar la base de datos, puede simplemente leer los datos de la sesión/galletas desde el lado del cliente.

+0

Genial, lo intentaré. –

4

Pero la tienda de sesiones AR también depende de las cookies: guarda la identificación de la sesión allí.

Por lo que yo sé, no hay forma de que las sesiones de Rails funcionen con las cookies deshabilitadas.

+0

sí, tiene razón, la pregunta no era relevante, ya que de hecho estaba buscando una solución para habilitar sesiones sin cookies. No es posible. Agregué una notificación a mi aplicación para permitir cookies cuando se disuelven. ¡Gracias! –