¿Cómo funciona el calentamiento automático de Solr y las diversas mecánicas de caché?

¿Cómo funciona el calentamiento automático de Solr y las diversas mecánicas de caché?

Estaba leyendo sobre los cachés y el calentamiento y me quedan un montón de preguntas.

Google me llevó aquí:https://solr.apache.org/guide/7_3/query-settings-in-solrconfig.html

Aunque la última versión parece estar aquí:https://solr.apache.org/guide/solr/latest/configuration-guide/caches-warming.html

Después de leer esta documentación, tengo una serie de preguntas, las enumeraré aquí. Aunque la pregunta principal es sobre el calentamiento automático.

1/ Veo una mención de un "Buscador de índice", que puede tener instancias que tienen una vida útil y estas instancias luego tienen cachés.

¿Debo entender que el proceso de crear instancias nuevas e invalidar las antiguas significa que las "instancias" se refieren al hecho de que todavía puede haber instancias antiguas que sirvan datos antiguos, mientras se construye la nueva? ¿Y no hay varios buscadores de índices para un núcleo a la vez?

2/ ¿Cómo funciona todo esto en términos de invalidación de caché? ¿Es el caché básicamente el buscador y si 1 caché se invalida, el buscador debe volver a crearse junto con todos los demás cachés?

3/ Estoy leyendo que el calentamiento automático básicamente toma un montón de entradas de una instancia antigua de Index Searcher y las agrega a la nueva instancia. ¿Existe algún tipo de seguro de que estas entradas copiadas sigan siendo válidas? Es decir: si un caché ya no es válido, debido a alguna confirmación que podría incluir cambios para ciertos documentos o resultados de consultas... ¿existe algún mecanismo para garantizar que evitamos copiar entradas antiguas que contienen documentos/resultados basados ​​en material desactualizado? ?

4/ Veo ejemplos de cachés que utilizan números como 512 entradas. Esto parece bajo. ¿Cuáles son las consideraciones aquí? ¿Los cachés se reconstruyen con mucha frecuencia debido a que es necesario crear nuevos buscadores de índices y, por lo tanto, es un desperdicio crear objetos grandes todo el tiempo, solo para abandonarlos con frecuencia y luego reconstruirlos? ¿O algo mas?

5/ Suponga que tiene una aplicación que crea documentos y realiza consultas basadas en identificaciones de usuario generadas por la aplicación. Y tengo 1 núcleo/colección "user_documents" y todo va allí, siendo la "id de usuario" un campo. En este escenario, parece que la acción de un usuario podría invalidar el caché para todos los usuarios. ¿Cómo se puede evitar eso?

6/ Con respecto a los filtercaches, estoy leyendo que la entrada más antigua de un caché LRU se reemplaza por nuevas entradas completas. Dado que los filtros almacenan en caché las entradas de la historia para cada "fq" de una consulta, ¿puede suceder que una consulta larga sea expulsada del caché, pero solo algunas de sus fq y no otras? ¿Esto es malo?

7/ Para el caché de documentos, veo la línea:

El tamaño de documentCache siempre debe ser mayor que max_results

multiplicado por max_concurrent_queries, para garantizar que Solr no necesite volver a recuperar un documento durante una solicitud.

¿Cuáles son las implicaciones de eso? No puedo encontrar documentación sobre max_results y max_concurrent_queries como nombres para la configuración.

Gracias a cualquiera que dedique su tiempo a esto.

información relacionada