Tecnología bigkey
Última actualización
Última actualización
En servidores con la versión de 64 bits de Velneo vServer y con suscripción, en aplicaciones que tengan un gran volumen de datos, al regenerar índices, se activará una indexación ultra rápida gracias al aprovechamiento masivo de los recursos del sistema.
En los siguientes puntos podrás conocer las distinta fases que lleva implementada la versión en curso.
Optimización de regeneración de índices complejos por cálculo en paralelo.
La regeneración de índices complejos ha sido optimizada aplicando la tecnología Bigkey en su 4ª versión: en función del número de cores y memoria disponible se realiza la composición de claves y ordenación en paralelo, terminando la escritura en disco en bloque, con el fin de mejorar y optimizar la regeneración de índices. Con ello conseguimos una velocidad de regeneración de hasta 7x veces mayor en el caso de índices a trozos y palabras y hasta 2x veces más rápido en el caso de índices acepta repetidas.
Además, se implementa un log de la regeneración de índices complejos y una compactación mayor de los ficheros de índices que reducen su tamaño en un 33%.
Si hay campo de tipo objeto no lo hace en paralelo para esos campos.
Si no hay memoria suficiente para el multihilo, vuelca a disco la información que tiene en ese punto, para poder continuar con el resto de procesamiento en paralelo.
La última fase de la ordenación, que es cuando además vuelca a disco lo que tiene en memoria, lo hace sin multihilo para optimizar la escritura.
Nos hemos puesto como objetivo que los tiempos en cambios de estructura o mantenimientos de las tablas se reduzcan al máximo, y para ello hemos trabajado en mejorar la velocidad de la regeneración de índices de las tablas.
Hemos desarrollado un nuevo algoritmo de regeneración más optimizado, que realiza las operaciones en paralelo aprovechando todos los procesadores y memoria disponibles en la máquina.
De esta forma, conseguimos minimizar los tiempos de regeneración de forma proporcional al número de procesadores mientras dispongamos de memoria suficiente.
Así, conseguimos reducciones de tiempo de hasta el 85%, en función del número de registros, y la memoria y número de procesadores disponibles, siendo mayor la reducción cuanto mayor es el número de registros, siempre y cuando el sistema disponga de memoria suficiente y procesadores disponibles para el tamaño de las tablas regeneradas y su número de índices.
Esta optimización se aprovechará sobre todo en aplicaciones que tienen tablas con gran número de registros y muchos índices, como puede ser la tabla de movimientos de una gestión, la tabla de apuntes, en general grandes indexaciones en líneas de maestros, etc.
El algoritmo subdivide las tareas de regeneración de cada índice, en función de los procesadores libres disponibles, cargando en memoria un trozo del índice correspondiente para realizar las operaciones de composición, iniciando nuevas tareas a medida que detecta que se finalizan tareas anteriores y, por tanto, quedan procesadores libres, para posteriormente, lanzar la ordenación, también en paralelo, mientras comienza con un nuevo índice. De esta forma, cuantos más procesadores se tengan, más tareas se pueden realizar en paralelo.
Por esta razón, necesita también memoria libre suficiente para realizar todas las tareas en paralelo del índice correspondiente. En caso contrario, continuará finalizando las tareas en curso hasta disponer de nuevo de memoria suficiente.
Este nuevo algoritmo es muy exigente con el sistema, requiere gran cantidad de memoria libre en el sistema, ya que ha de soportar el consumo de memoria en paralelo de cada una de las tareas de los índices en función del número de procesadores disponibles en el sistema. Por esta razón, se ha incorporado en el servidor con mantenimiento ya que puede ser incluso contraproducente en instalaciones pequeñas, haciendo que sea incluso más lenta la regeneración. De hecho, tiene incorporados una serie de controles y limitaciones en función de la memoria disponible con el fin de evitar problemas de falta de memoria.
Fruto del trabajo de innovación de Velneo en la regeneración de índices de los servidores de Velneo la aplicación de la tecnología bigkey obtiene mejoras de rendimiento de hasta el 30% en tablas con gran número de registros, gracias al desarrollo de nuevos algoritmos buscando el aprovechamiento de todas las capacidades de la máquina, núcleos de la cpu, memoria y disco.
Las mejoras se empiezan a notar a partir de los 10.000 o 100.000 registros, donde podemos obtener de un 5 a un 15% de reducción de tiempo en la regeneración, pero esta reducción de tiempos comienza a ser mayor cuantos más registros tenga la tabla, a partir de 1.000.000 de registros podemos obtener reducciones de hasta un 30% en los tiempos de regeneración.
Para obtener este rendimiento, se hace uso un algoritmo de ordenación en paralelo, que permite aprovechar el número de cores disponibles y la memoria disponible del sistema, optimizando la regeneración al dividirla en tareas simultáneas.
Es posible desactivar esta regeneración de índices de paralelo para equipos con cpu y memoria insuficientes. Haz clic aquí para ampliar información al respecto.
En servidores con la versión de 64 bits de Velneo vServer y con suscripción, en aplicaciones que tengan un gran volumen de datos, al regenerar índices, se activará una indexación ultra rápida gracias al aprovechamiento masivo de los recursos del sistema.
En instalaciones con millones de registros, implica una mejora en la regeneración de índices entre un 200% y un 400% con respecto a un servidor sin esta tecnología.