ES distribuye la arquitectura y los principios subyacentes de análisis

Sobre un ES

     elasticsearch concepto de diseño es un motor de búsqueda distribuida, la implementación subyacente está basada en Lucene, la idea central es iniciar instancias múltiples procesos ES en varias máquinas, que consiste en un ES racimo.

Dos es el concepto

Un tiempo casi real


ES es una plataforma de búsqueda en tiempo casi real, lo que significa que, a partir de un documento indexar documentos se pueden buscar hasta que haya un ligero retraso.

grupo B (cluster)


Un clúster tiene composición múltiples nodos (servidores), guardar todos los datos juntos a través de todos los nodos, a través de índice común y buscar una colección de nodos, cada grupo tiene un nombre único de identificar.

nodo C (nodo)


Un nodo es un único servidor que forma parte de la agrupación de almacenamiento de datos, y participar en el clúster y buscar capacidades, un nodo puede ser añadido a un grupo determinado mediante la configuración de nombre específico, en un clúster, el número de nodos que desea iniciar se puede empezar cuántos nodos.

índice D (índice)


Un índice es también una colección de algunas de las características comunes del documento, un índice es un nombre que identifica de forma única, y este nombre se utiliza para indexar por el documento para realizar una búsqueda, actualizar y operaciones de borrado.

Tipo E (tipo)


tipo ya no se utiliza en 6.0.0.

F documento (documento)


Un documento es una unidad de búsqueda básica.

tres secciones


    ES, la unidad básica de datos se almacenan en el índice, como es almacenado en una serie de sistema de pedidos, se debe crear un índice es en, orden-índice, todos los datos de ventas se escriben en el índice irá en el interior , al igual que una base de datos de índice. El tipo es equivalente a cada mesa,
un índice que puede tener el tipo múltiple, que es equivalente a la estructura definida tabla de asignación, define qué tipo de campo, se agrega una fila a un índice de tipo de datos de un documento denominado cada documento tiene una pluralidad de campo, cada campo representa un valor de campo del documento.

1 rebanada (Fragmentos)

      En la búsqueda de datos en la memoria, las siguientes situaciones potenciales pueden exceder el límite de almacenamiento de un nodo de hardware, con el fin de resolver este problema, Elasticsearch proporciona un fragmento funcional, que puede ser indexado en múltiples fragmentos, cuando crear un índice, sólo tiene que definir el número que desea rodajas, cada rebanada en sí es un índice totalmente independiente con todas las funciones que se pueden implementar a cualquier nodo del clúster. Dos razones importantes fragmentan:
(1) que permite que el contenido del nivel de volumen de la segmentación.
(2) la distribución de las cuales permite que las operaciones realizadas por corte en lonchas y para hacer frente a la creciente cantidad de ejecución.

Copy (Replica)
      en una red, puede ocurrir en cualquier momento del fallo, hay un mecanismo de recuperación es necesario con el fin de conseguir este objeto, ES permite realizar una o más copias en un fragmento se llama la replicación o la replicación transitoria suplementos. Copiar es importante por dos razones principales.
(1) alta disponibilidad. Proporciona una alta disponibilidad desde el nodo se cae o evitar la fragmentación, por lo tanto, un punto muy importante de la nota es no volver a copiar un sector con la rebanada en la misma máquina.
(2) alta concurrencia. Se le permite a la rebanada más allá de su rendimiento puede proporcionar servicios de búsqueda, el comportamiento de búsqueda puede ejecutar en paralelo en todas las copias de los fragmentos.


  En resumen, es un proceso completo cliente, ES escribir un shard de datos primaria, se divide en un par de rebanada fragmento, y la replicación de datos, ES cuando el terminal cliente obtendrá los datos de la réplica o el fragmento primario para leer. ES agrupan varios nodos, un nodo será elegido automáticamente como el nodo maestro, el nodo maestro está haciendo realmente alguna clase de gestión de operaciones, tales como el mantenimiento de los metadatos, responsable de la conmutación fragmento primario y un fragmento de réplica de la identidad y similares, Dang si el nodo maestro la máquina, se volverá a elegir al siguiente nodo es un nodo maestro. Si, después de un no-maestro se cae, habrá un nodo maestro, por lo que la transferencia de la identidad fragmento tiempo de inactividad principal del nodo al fragmento de réplica, si el tiempo de inactividad de la reparación de la máquina, reiniciar nodo maestro controlará la falta de distribución fragmento de réplica en el pasado, sincronizado modificaciones posteriores de trabajo, lo que de nuevo clúster a la normalidad.

Proceso en cuatro elementos escritura de datos

Un nodo cliente envía una solicitud para seleccionar un pasado, este nodo está coordinando nodo (nodo coordinador).

B Coordinación de nodo, para documentar ruta, la solicitud se reenvía al nodo correspondiente.

C fragmento primario real en el nodo solicitud de procesamiento, los datos se sincroniza con el nodo de réplica.

D Coordinación del Nodo, entonces si nos encontramos nodo principal y todo el nodo de réplica se realizan, devolverá la solicitud al cliente.

Cinco es la lectura de los datos del proceso

Consulta, un dato de un GET, escribir un documento, el documento dará automáticamente asigna un ID único a nivel mundial, el hash enrutado simultáneamente al fragmento primario anterior correspondiente al ID de acuerdo con esto, por supuesto, se puede establecer manualmente ID

Un cliente envía una solicitud a cualquiera de cualquier nodo, se convierte en la coordenada nodo.

B ruta Nodo de coordenadas en un documento, la solicitud se reenvía a la correspondiente nodo, esta vez utilizando el algoritmo de round-robin azar en rotación, en una selección aleatoria de todo fragmento primario y réplica, de modo que el equilibrio de solicitud de carga de lectura.

C Nodo acepta la petición, devuelve el documento para coordinar nota.

D Coordinar el nodo devuelto al cliente.

Seis es el proceso de búsqueda de datos

Un cliente envía una solicitud al nodo de coordenadas.

B nodo coordinador que transmita la solicitud de búsqueda a todo ello correspondiente fragmento fragmento fragmento primario o réplica.

C Fase de consulta: Cada fragmento resultará (de hecho, es un número de identificación único) búsqueda propia, devuelto al nodo coordinador, tiene una combinación de datos, la clasificación, la paginación y otras operaciones nodo coordinador, salida el resultado final.

D FETCH fase, y luego, en base al identificador único a cada nodo con un tirón de la coordinación de nodo, casi siempre se devuelve al cliente los datos.

Siete principios de la escritura de datos subyacente

A los datos se escriben primero en el interior de amortiguación, existe No se buscaron datos en el buffer, y los datos se escriben en el archivo de registro translogarítmica.

B Después Si la memoria intermedia está casi lleno, o un período de tiempo, será actualizar los datos en una memoria intermedia en el nuevo caché del sistema operativo, y luego cada 1 segundo, se escribirá en el archivo de segmento de datos caché del sistema operativo, pero Si cada segundo que no hay datos nuevos en la memoria intermedia, se creará un nuevo archivo segmento vacío, siempre y cuando los datos en el buffer es de refresco en el caché del sistema operativo, en nombre de los datos se pueden buscar. Por supuesto, por la API reparador y API Java, realizar manualmente una operación de actualización es de buffer de datos manuales en el cepillo en el caché del sistema operativo, por lo que los datos de inmediato se busca, siempre y cuando se introducen los datos en el caché del sistema operativo, la memoria intermedia se borrarán los contenidos. Al mismo tiempo que los datos después del fragmento, los datos se escriben en la translogarítmica, cada 5 segundos los datos de entre los translogarítmica persistieron en el disco.

C repita los pasos anteriores, cada vez que un búfer de datos de escritura, mientras escribe un archivo de registro para iniciar sesión en el translogarítmica, el archivo translogarítmica continuarán siendo cada vez más grande, cuando en cierta medida, se activará la operación de confirmación.

D será una confirmación punto se escribe en un archivo de disco, que identifica el archivo segmento con todo el correspondiente punto de compromiso.

E forzado en el sistema operativo de datos de caché son fsync al archivo de disco.
Explicó: papel translogarítmica: Antes de realizar confirmar, todos los datos deben permanecer en la memoria intermedia o caché del sistema operativo, sea o OS caché es una memoria intermedia, una vez que la máquina está muerta, se perderá la memoria de los datos, por lo entre los datos deben ser escritos en una operación especial de registro preguntando por el precio, una vez que el tiempo de inactividad de la máquina, reiniciar nuevamente correspondiente cuando, ES tomará la iniciativa para leer datos de los archivos de registro en el translogarítmica, restaurado en el búfer de memoria y la caché del sistema operativo siendo.

F archivo existente translogarítmica está vacía, y luego reiniciar un translogarítmica, comprometerse en este momento, incluso si tiene éxito, el valor predeterminado es cometer una vez cada 30 minutos, pero si el archivo translogarítmica es demasiado grande, se disparará cometer, toda proceso de confirmación se llama una operación de vaciado, también podemos eS API, para eliminar de forma manual, manual de datos OS fsync caché para ir, la grabación de un punto de compromiso, vaciar el disco de archivo translogarítmica anteriormente.
Añadido: En realidad los datos translogarítmicas se escriben primero en el caché del sistema operativo, de forma predeterminada en cada 5 segundos a ras de datos en el disco duro de, digamos, unos cinco segundos de datos en el búfer o simplemente se quedan archivo translogarítmica caché del sistema operativo, si la máquina colgó en este momento, va a perder 5 segundos de datos, pero este rendimiento es mejor, sino que también puede ser un momento de las operaciones fsync directamente en el disco, pero el rendimiento será relativamente pobres.

G Si la operación de eliminación, dedicar tiempo producirá un archivo .del, que estaba a punto de un estado de borrado doc marcada, por lo que en la búsqueda, basado en el archivo .del estado, usted sabe que un archivo ha sido eliminado.

H pieza Si la operación de actualización está hablando sobre el estado doc original identificado como eliminar y volver escrito de los datos puede ser.

El I Buffer una vez cada actualización, se producirá un documento de archivo de segmento, por lo que bajo la forma predeterminada, se generará una gran cantidad de documentos de archivos segmento, llevará a cabo operaciones de combinación de forma regular

J cada fusión y que presentarán segmento de múltiples archivos en uno, y serán marcados como eliminados borrar el archivo, a continuación, escribe el archivo nuevo segmento a un archivo de disco, habrá escribir un punto de compromiso, la identificación Todo nuevo archivo segmento y, a continuación, abra un archivo nuevo segmento a utilizar para la búsqueda.

   En resumen, los cuatro segmentos conceptos básicos, refrescar, ras, translogarítmica, combinación.

 

El principio subyacente de ocho de búsqueda

  Consulta proceso de consulta y recuperación se divide en gran parte en dos fases, una solicitud de consulta de difusión a todos los cortes, e integrar los resultados de sus respuestas a la ordenación global de la serie, el conjunto de resultados devueltos al cliente.

 etapa de consultas

  A Cuando un nodo recibe una solicitud de búsqueda, el nodo se convertirá en un nodo coordinador, el primer paso es para fragmentar una solicitud de difusión de una copia de cada nodo a la petición de consulta de búsqueda puede ser uno de un maestro o un sub-fragmento proceso de fragmentación, el nodo de coordinación en rotación todos los fragmentos de copias después de la solicitud para compartir la carga.

  B Cada rebanada se construirá en una cola de prioridad local, si se le pide al usuario que vuelva el número de resultados de la clase llamada a partir del tamaño del conjunto de resultados, cada nodo tendrá un tamaño en el tamaño del conjunto de resultados +, por lo tanto tamaño de la cola de prioridad es de + tamaño, la fragmentación simplemente devuelve un resultado a la ligera nodo coordinador, los resultados incluyen el ID de etapas de cada documento y clasificación de la información requerida.

  C nodo coordinador resumirá todos los resultados, y globalmente ordenado, con el tiempo a rango.

 La etapa de valor

  A ordenar los resultados obtenidos por el proceso de consulta, los documentos que la marca está en línea con los requisitos de este caso todavía tienen que obtener estos documentos de vuelta al cliente.

  B nodo coordinador determinará las necesidades reales de los documentos devueltos, y se transmite el documento que contiene el fragmento petición GET, el documento se devuelve al nodo de coordinación rebanadas adquiridos, el nodo coordinador devuelve el resultado al cliente.

Nueve índice invertido

índice para mapear la relación entre la palabra y el documento, en el índice invertida entre los datos invertidos es palabra orientado en lugar de orientados al documento.

Cómo mejorar la eficiencia de datos masiva de diez

Un sistema de archivos de caché


ES motor de búsqueda depende seriamente sobre la memoria caché del sistema de archivos subyacente, si hay más memoria al sistema de archivos de caché, tratar de hacer que la memoria tiene capacidad para todo el archivo de datos de índice de archivo segmento de índice.

Datos de precalentamiento B


Para esos datos cree usted que es caliente, a menudo alguien va a acceder a los datos, lo mejor es hacer un subsistema especial de pre-almacenamiento en caché, los datos térmico es, de vez en cuando, se accede a la siguiente con antelación, por lo que los datos en el interior de la memoria caché del sistema de archivos ir, así que esperamos que la próxima visita del tiempo, el rendimiento será mejor.

C caliente y la separación frío

ES optimizar el rendimiento con respecto a la división de los datos no puede buscar un gran número de campos a la tienda a otra división, división vertical MySQL Esto es similar a la tabla fracción sub-biblioteca.

el diseño del modelo de documento D

No llevar a cabo en la búsqueda de una variedad de operaciones complejas, tanto como sea posible cuando el diseño de modelos de documentos, cuando la escritura se ha completado, además de una serie de operaciones complejas, tratar de evitar.

E optimización del rendimiento de la página

Da vuelta las páginas, gire el más profundo, más los datos de cada shard devueltos, y más largo el proceso de nodo coordinador, por supuesto, es el uso de desplazamiento, desplazamiento generará una instantánea de una sola vez de todos los datos, cada página se hace moviendo el cursor. api justo al girar en la página por página.

 

referencia 

https://segmentfault.com/a/1190000015256970?utm_source=tag-newest

https://blog.csdn.net/liyantianmin/article/details/72973281

https://www.cnblogs.com/leeSmall/p/9220535.html

Publicado 43 artículos originales · ganado elogios 28 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u013380694/article/details/101760607
Recomendado
Clasificación