2010-06-18 11 views
6

Actualmente estoy diseñando un sistema que debe ser capaz de manejar decenas de miles de escrituras por segundo. Estoy más o menos dispuesto a usar Apache Cassandra para la capa de persistencia, y usaré Java para la capa de aplicación, pero hay situaciones en las que necesito acceder rápidamente a los datos de una manera que capte los cambios en cuestión de segundos.¿Qué opciones de caché en el cliente funcionan bien con Cassandra y Java?

Tocar Cassandra cada vez que necesito verificar estos datos para ver los cambios será demasiado lento, lo que significa que necesito usar algún tipo de capa de aplicación de almacenamiento en caché.

Para garantizar que los datos almacenados en caché permanezcan actualizados, lo ideal es que admita algún tipo de invalidación de memoria caché basada en multidifusión.

¿Cuáles son mis opciones?

+1

no creo que se debe presumir que golpear Cassandra para estos datos será demasiado lento. Si los datos a los que está accediendo son recientes o calientes, siempre estarán en la memoria de todos modos y todo lo que hará es desperdiciar más memoria volviéndolos a almacenar en la memoria caché. Debes experimentar y probar en lugar de presumir. –

Respuesta

0

He usado ehcache y funcionó muy bien. Muy configurable fuera de la aplicación y es compatible con la invalidación de multidifusión (y la persistencia basada en disco que necesitaba más que la invalidación).

1

Comenzaría investigando si la clave de cassandra (evitar el escaneo de índice) y/o el caché de filas (evitar la búsqueda de escalas) es suficiente.

información detallada: http://wiki.apache.org/cassandra/API

+0

¿Están en caché en el cliente? ¿Me puede dar una referencia a información más detallada sobre esto? – sanity

+1

eso es puro caché del lado del servidor – Schildmeijer

Cuestiones relacionadas