Estoy cambiando la configuración de sesión de una aplicación Pyramid de cookie
a ext:memcached
. Mi aplicación está alojada en Heroku y he configurado su memcache addon según their documentation.¿Debo configurar el `session.lock_dir` de Beaker cuando uso Memcache en Heroku?
Entiendo por el Beaker documentation que especificar un session.lock_dir
es esencial para evitar el dog pile effect. Para ser explícito: debo proporcionar una ruta de archivo a un directorio. A continuación, Beaker lo usa como un tipo de bloqueo para evitar que varios clientes intenten establecer el mismo valor al mismo tiempo.
Para mí, esto suena como una mala arquitectura. Una de las principales ventajas de Memcache es que funciona como un servicio externo compartido. Enlazar mis procesos de aplicación a un bloqueo de disco enlazado parece ser un enfoque equivocado.
Igualmente, en Heroku, tengo un sistema de archivos ephemeral por "dyno" (que entiendo significa cada proceso). Entonces, si bien puedo proporcionar una ruta de directorio lock_dir
, si cada proceso usa un directorio diferente, ¿esto me protegería del efecto de pila de perros?
no estoy seguro de si debo:
- especificar un lock_dir y no preocuparse de que
- intento de tenedor Cubilete y esto de alguna manera el parche
Además me encantaría saber qué patrón utilizan otros idiomas/marcos aquí. ¿Es solo un problema de Beaker o otras configuraciones no ligadas a archivos sufren el efecto de pila de perros?
Gracias de antemano,
James.
Estoy bastante seguro de que el backend de memcached no requiere un 'lock_dir', ¿lo has probado sin? –
Hola Michael, 'beaker.ext.memcached' requiere un lock_dir, al usar cualquiera de los back-ends aparte de' memory' o 'cookie'. [Mi rastreo aquí] (https://raw.github.com/gist/3278155/d744c1087445b5c18270212796026dbafe9b5760/gistfile1.pytb). – thruflo
Lo siento, mi último comentario en realidad no tenía sentido. El backend de memcached requiere un 'lock_dir'. La traza que publiqué fue activada por [este código] (https: // bitbucket.org/bbangert/beaker/src/d1757ad53763/beaker/ext/memcached.py # cl-85). Me he encontrado [esta discusión sobre el mismo problema] (https://bitbucket.org/bbangert/beaker/issue/78/clusterable-session). Parece que la respuesta es: "especifica un lock_dir y no te preocupes por eso". – thruflo