En la última versión importante, Couchbase Server 5.0, introdujimos Plasma - Nuevo motor de almacenamiento y también el apoyo a Réplicas de índices en el Servicio de Índices. Hemos seguido desarrollando estas nuevas funciones en nuestra próxima versión.
Los temas de agilidad, rendimiento y mejor manejabilidad siguen ocupando un lugar destacado en nueva versión de Couchbase Server 5.5.
Couchbase Server 5.5 introduce la siguiente clave Indexación mejoras:
Índices particionados
Los índices secundarios globales en Couchbase han residido tradicionalmente en un único nodo. Esto significa que los nodos de índice, tradicionalmente, sólo han sido capaces de escalar verticalmente. Esto mejoraba el rendimiento cuando las consultas obtenían resultados contiguos - a la paginación con cláusulas OFFSET y LIMIT. Pero si un índice no cabía en un único nodo, había que dividirlo manualmente en varios índices basados en un predicado, lo que daba lugar a los índices parciales.
Con la posibilidad de crear Índices particionados basado en un esquema basado en hash, los clientes pueden dividir automáticamente un índice único y repartirlos entre varios nodos más pequeños.
Por ejemplo, si dividimos por tipo en el viaje-muestra y consulta por icao y paísse utiliza automáticamente el índice particionado.
|
1 2 3 |
CREATE INDEX `part_idx_ts` ON `travel-sample`(`icao`,`country`) PARTITION BY hash(`type`); SELECT * FROM `travel-sample` WHERE type='airline' AND icao = 'MLA' AND country = 'United States'; |
Generalmente recomendamos que la clave de partición sea un campo inmutable o una expresión N1QL aplicado a un campo inmutable, es decir, un campo que no se actualiza con frecuencia. El usuario también puede especificar uno o más campos como claves de partición.
También se podría tener réplicas de particiones. Las particiones perdidas durante la conmutación por error del nodo se reconstruirán automáticamente durante el reequilibrio. En futuros documentos se detallarán los casos en los que se deben utilizar índices particionados y los casos en los que no, así como los detalles internos de los índices particionados.
Ventajas: Los nodos de consulta ahora pueden emitir consultas a particiones de índices múltiples en paralelo y obtener los resultados; esto beneficia especialmente a las consultas de agregación. También ayuda en aquellos casos en los que no hay una cláusula ORDER BY en la consulta N1QL, lo que significa que los resultados obtenidos del servicio de índices no necesitan ser ordenados. Sólo se escanean las particiones especificadas en un predicado, lo que permite realizar consultas más eficaces. Al tener réplicas de las particiones, las exploraciones se equilibran entre ellas.
Leer más... Particionamiento de índices en Couchbase Server 5.5
Agregación a índices
Optimizaciones del índice pushdown (para diversas operaciones como desplazamiento, ordenación, predicados compuestos, etc.) ya existen en Couchbase Server como herramientas efectivas para el procesamiento eficiente de consultas. Ahora, las agregaciones (como COUNT, SUM, MIN, MAX, AVG) junto con GROUP BY también se trasladan a Index Service. Más información aquí.
Ventajas: Consultas N1QL más rápidas, menor transferencia de datos entre los nodos de índice y consulta y menor sobrecarga de procesamiento en los nodos de consulta.
Presentación de "ALTER INDEX
Este nuevo comando declarativo proporciona a los administradores la capacidad de mover índices de un nodo a otro. Anteriormente, en Couchbase Server 5.0, esto era posible usando la API REST, pero el esquema declarativo simplifica la administración y es mucho más intuitivo. La topología del índice se mantiene, pero el comando da un control más fino a los administradores sobre la colocación del índice. ¿Cómo se utiliza el nuevo comando? Haga clic en aquí para obtener más información. Tenga en cuenta que los índices no pueden renombrarse, ni los atributos sobre los que se han indexado pueden alterarse utilizando esta directiva.
Ventajas : Gestión más sencilla de los índices mediante la simple especificación de una operación DML para mover las réplicas de índices.
- Más información sobre ALTER INDEX sintaxis y ejemplos en la documentación
Consola de administración de índices renovada
La pestaña Índice en la Consola de Administración de Couchbase recibe un nuevo lavado de cara. Ahora no sólo puedes buscar por nombres de índice, sino que también tienes diferentes diseños de vista basados en nombres de nodo, nombres de cubo y nombres de índice. Se han añadido señales visuales para identificar fácilmente particionado índices.

Pestaña Índice en la Consola de Administración de Couchbase
Ventajas : Mejor legibilidad del estado de los índices a través de los nodos de índice.
Supervisión de las API REST
Se han introducido nuevos puntos finales REST que ofrecen información sobre diversos parámetros de uso de los índices. Hay dos tipos de estadísticas accesibles mediante los puntos finales REST:
Estadísticas a nivel de índice (accesible a través de host:indexer-port/api/stats//)
- cache_hit_percent - Porcentaje de accesos a memoria servidos desde la caché gestionada
- tamaño_datos - Tamaño real de los datos consumidos por el índice
- tamaño_disco - Tamaño total del archivo de disco consumido por el índice
- frag_percent - Porcentaje de fragmentación del índice. Nota: con tamaños de índice pequeños, inferiores a cien kB, la sobrecarga estática del archivo de disco de índice inflará el porcentaje de fragmentación del índice.
- items_count - Recuento total actual de documentos indexados (se actualiza al reiniciar)
- num_docs_indexed - Número de documentos indexados por el indexador desde el último arranque
- num_docs_pending - Número de documentos pendientes de indexación
- num_docs_queued - Número de documentos en cola para ser indexados
- num_requests - Número de peticiones atendidas por el indexador desde el último arranque
- num_rows_returned - Número de filas servidas por el indexador desde el último arranque
- porcentaje_residentes - Porcentaje de datos en memoria
- scan_bytes_read - Número de bytes leídos por un escáner desde el último inicio
- total_scan_duration - Tiempo total empleado por el Indexador en escanear filas desde el último arranque.
Estadísticas a nivel de nodo (accesible a través de host:indexer-port/api/stats)
Incluye cada una de las estadísticas a nivel de índice (mencionadas anteriormente) y también incluye
- indexer_state - Estado actual del indexador (por ejemplo, Activo/Pausado)
- cuota_memoria - Cantidad de memoria utilizada por el nodo (en Bytes)
- memoria_utilizada - Cuota de memoria asignada al Indexador (configurable por el usuario, en Bytes)
Las estadísticas anteriores no se agregan en todo el clúster.
Asimismo, los dos parámetros siguientes serán visibles en la Admin Console, además de ser accesibles a través de los puntos finales REST (no disponibles para ForestDB):
- rache_hit_percent
- porcentaje_residentes
- memoria_utilizada
Ventajas : Comprenda mejor el comportamiento del índice utilizando los puntos finales RESTful para consumir las estadísticas del índice en el plano de control de gestión de su elección.
Nos encantaría conocer su opinión. Déjenos sus comentarios a continuación o en nuestro Foro. Descargue el nuevo Lanzamiento de Couchbase Server 5.5.