lareferencia/dspace-stats-collector

Analizar tamaño de página en consultas a solr

arieljlira opened this issue · 2 comments

En configcontext.py se tiene una constante SOLR_QUERY_ROWS_SIZE con el tamaño de página de solr fijado en "10".
Adjunto unas pruebas con la version 0.5.5, es decir la actual, usando tamaño 10, 100 y 1000 sobre lotes de 10.000 eventos:

  1. Con SOLR_QUERY_ROWS_SIZE==10
  • Tiempo total para envio del lote: 30 minutos
  • Tiempo total de uso de solr: > 10 minutos
  • Tiempo promedio de request 0.65 segundos (son 1000 requests)
  1. Con SOLR_QUERY_ROWS_SIZE==100
  • Tiempo total para envio del lote: 10 minutos
  • Tiempo total de uso de solr: 2.3 minutos
  • Tiempo promedio de request 1,4 segundos (son 100 requests)
  1. Con SOLR_QUERY_ROWS_SIZE==1000
  • Tiempo total para envio del lote: 7 minutos
  • Tiempo total de uso de solr: < 1 minuto
  • Tiempo promedio de request 4.4 segundos (1.9 sin considerar el primer request que tarda mucho más en todos los casos)

A partir de estos datos se podemos ver que 10 es un valor muy bajo y contraproducente, ya demanda mucho tiempo de uso de solr y el lote completo tarda más en procesarse, casi 3x.
También vemos que partir de 100 no se reduce mucho el tiempo de procesamiento de lote, pero sí baja el uso de solr en tiempo y lógicamente la cantidad de requests. Esto indicaría quizás que se tiene un alto tiempo de procesamiento y subida (approx de 6 a 7 minutos para 10000 eventos).
Entonces, ahora un valor de 100 es coherente, pero si se logra optimizar un poco el tiempo de procesamiento y subida de los datos, entonces quizás se puede subir el tamaño de página de solr a 1000 e incluso pensar en aumentar el eventsToSend a al menos al doble.

En resumen, recomiendo subir el tamaño de SOLR_QUERY_ROWS_SIZE a 100 por default y permitir que se parametrice desde el archivo de config.

@arieljlira ahora lo veo. Voy a mejorar esto lo antes posible y te aviso

Funciona del modo esperado. Cierro el ticket. gracias