2012-04-30 6 views
10

Tengo un flujo de eventos y un almacenamiento de claves-val. El tamaño del valor está limitado por 4 Kb. La tasa de eventos no es muy alta: un máximo de cientos por día.marco de java para la implementación de agregaciones y ventanas deslizantes

En este valor necesito almacenar una representación serializada de una estructura de datos que proporcione un mecanismo eficiente para leer, almacenar y actualizar recuentos de eventos agregados durante un período de 3 meses con agregaciones diarias y semanales y ventanas deslizantes de 1/2 una hora.

La solución necesita realizar eficientemente las siguientes tareas tanto para las agregaciones de recuento de eventos simples como para la desviación estándar del conteo de eventos. (el período máximo para todas las tareas mencionadas a continuación es 3 meses):

actualizaciones
  1. constantes (en forma perezosa - como llega el evento correspondiente) - en caso de que las agregaciones última calculados son demasiado viejo - tiro los datos desactualizados y crear nuevas agregaciones
  2. actualización desencadenada por solicitudes de lectura (el usuario solicita información, por ejemplo, recuento de eventos para usuarios específicos, desviación estándar del recuento de eventos para usuarios únicos, etc.) en caso de que las agregaciones calculadas sean demasiado antiguas.

Me pregunto: ¿Existe algún marco de código abierto de Java que pueda ayudar a implementar el anterior?

También apreciaría recomendaciones de diseño: patrones de diseño, etc.

La solución no es difícil de implementar desde cero utilizando la API Java estándar, pero antes de hacerlo le agradecería algunas sugerencias de código abierto (si los hay).

Google buscando la solución no me llevó a ningún lado, excepto algunos artículos teóricos, soluciones basadas en SQL e IBM (kit de herramientas de código abierto llamado SPL).

Respuesta

Cuestiones relacionadas