2008-12-29 14 views
33

He estado prestando atención a la reciente promoción de Velocity de Microsoft como una solución de almacenamiento en caché distribuida que competiría con productos como Memcached.MS Velocity vs Memcached para Windows?

He estado buscando 64bit version of Memcached for Windows for some time now sin suerte, y como todo lo relacionado con el proyecto ASP.Net MVC en el que estoy trabajando es de 64 bits, no tiene sentido usar nada que no sea 64 bits.

Ahora ya estamos cubriendo nuestras apuestas con ASP.NET MVC en Beta (RTM pronto con suerte), pero parece que StackOverflow no está funcionando tan mal, así que tengo preocupaciones limitadas allí. Pero Velocity sigue siendo una cantidad desconocida y seguirá siendo Beta (o CTP) durante años, pero tiene 64bit.

¿Alguien tiene experiencia o punto de vista relevante para ofrecer en esta situación? ¿Deberíamos esperar nuestro momento para Velocity? ¿Está cerca de competir con un gigante como Memcached, o deberíamos invertir tiempo tratando de obtener una versión de 64 bits de Memcached?

+0

Gran pregunta: me gustaría saber de los desarrolladores con experiencia en estos dos productos. – Guy

+3

¿Alguien tiene alguna experiencia reciente? la respuesta aceptada se basa en información de más de 1 año. – UpTheCreek

Respuesta

22

Recientemente hemos hecho una buena cantidad de comparaciones de Velocity y Memcached. En resumidas cuentas, encontramos que Velocity es 3x - 5 veces más lento que Memcached, y (aún más crucial) no tiene soporte actualmente para una operación de obtención múltiple. Por el momento, recomendaría ir con Memcached. Además, otra lección que hemos aprendido es que la operación más lenta en el almacenamiento en caché distribuido es la serialización y la deserialización (al menos en ASP.NET). La memoria caché ASP.NET en proceso es más rápida en orden de magnitud. Entonces debes elegir las estrategias de almacenamiento en caché mucho más cuidadosamente.

+5

Velocity proporciona más características (bloqueo, replicación, etiquetado de objetos para nombrar las que afectan el rendimiento de la pareja). Muchas veces la decisión no es solo acerca del rendimiento sin procesar de la memoria caché – user8032

+5

. Nuevas mejoras de rendimiento en el nuevo CTP –

+0

@ pcawa27: entonces debería preguntarse si desea un caché o un sistema de memoria remota y distribuida. Dos problemas diferentes – graffic

1

Memcached tiene algunas librerías de código abierto si no me equivoco, así que si quieres ir a la ruta de 64 bits ¿no puedes simplemente recompilar?

Evalué Velocity cuando llegó por primera vez, pero llegué a la conclusión de que estaba poco desarrollado en esa etapa. Ser capaz de ejecutar memcached en servidores que no son de Windows también es una ventaja.

+1

Tiene razón, libevent es algo que usa, pero desafortunadamente cuando se trata de la administración de la memoria, no se puede simplemente compilar directamente en 64 bits, algunos ajustes deben hacerse por quienes saben cómo, no soy uno de aquellos desafortunadamente :-) De lo contrario, se vuelve muy inestable. – RobertTheGrey

2

Si no le importa pagar una licencia, puede use Scale Out State Server, which I talk about in my answer to a similar question here. Tienen versiones de 32 y 64 bits.

EDIT: A pesar del nombre del producto, maneja el estado de la sesión y el almacenamiento en caché distribuido.

+1

El almacenamiento en caché no es lo mismo que el seguimiento de sesiones de ASP.NET en mi libro. Pero gracias por la sugerencia. –

+0

De acuerdo, pero SOSS hace ambas cosas. –

+0

sesión es básicamente un caché para almacenar en caché el ID de sesión ... – alchemical