Tengo alrededor de 10 GB de datos almacenados en un nodo histórico. Sin embargo, el consumo de memoria para ese nodo es de aproximadamente 2 GB.

Cuando lanzo una consulta de selección, los resultados se devuelven la primera vez en más de 30 segundos. A continuación, están en segundo lugar (debido a la caché de los corredores).

Mi preocupación es reducir la primera selección de cualquier consulta a un segundo. Para lograr tal rendimiento, creo que es un buen comienzo si el nodo histórico almacena todos los datos en la memoria.

Pregunta: ¿Cuáles son los parámetros de configuración para forzar al nodo histórico a almacenar en caché todos los datos en la memoria?

4
DrWho3 1 ene. 2017 a las 15:02

1 respuesta

La mejor respuesta

Druid no tiene ningún mecanismo directo para forzar que los datos se almacenen en caché. Para solucionar este problema, puede intentar realizar algunas consultas ficticias al inicio que cargarían el segmento de datos en la memoria. Hay varios niveles de cachés que entran en juego cuando se lanzan consultas de druidas:

  1. Caché en nodos históricos
  2. Caché en los nodos del intermediario
  3. Caché de página

Los dos primeros cachés son configurables y se pueden activar / desactivar según el requisito, mientras que el caché de la página está completamente controlado por el sistema operativo subyacente. Dado que en su configuración tiene mucha memoria libre en el historial, le sugiero que active consultas ficticias al inicio, que abarcan todos los segmentos históricos, lo que traerá todos los datos de los segmentos en la caché de la página y cualquier consulta que se active más adelante en el tiempo se beneficiaría de esto.

Los cachés históricos y de agentes no almacenan en caché todos los datos del segmento, sino solo el resultado de una consulta en cada segmento, por lo que no serán útiles en caso de que sus consultas sean de naturaleza muy dinámica y requieran diferentes agregaciones y filtros cada vez.

2
rohit kochar 9 ene. 2017 a las 17:26
Buena respuesta y buena solución, ¡gracias! Como conclusión, puede que Druid no sea la mejor herramienta adecuada para este propósito. Por información, ¿sabe si existen herramientas más adecuadas? (Me refiero a un software en el que puede tener todos sus "macrodatos" listos en la memoria para consultas de selección rápida, sin ningún workaroud)
 – 
DrWho3
14 ene. 2017 a las 18:44
Estas son algunas de las bases de datos en memoria que conozco: VoltDB y Apache Geode. No he usado Geode personalmente, por lo tanto, no puedo garantizar su rendimiento, pero mi lectura inicial de su documentación me hizo creer que podría ser un buen candidato para la base de datos en memoria de big data.
 – 
rohit kochar
20 ene. 2017 a las 12:34