Para lograr tiempos de respuesta reales la tecnología In-Memory Computing se vale de una serie de técnicas que tienen por objetivo mover lo menos posible los datos en las bases de datos y entre la base de datos y las aplicaciones.
Compresión
A pesar que se pueda contar con grandes cantidades de memoria, con la compresión se persigue evitar el tránsito de los datos. Una técnica habitual es el uso de diccionarios, un método sencillo, porque al final, de lo que se trata es no sobrecargar la capacidad de procesamiento del CPU. Esta técnica consiste en sustituir los textos y fechas por números enteros, tal como se muestra en la siguiente imagen:
Con esta técnica se consigue un factor de compresión que depende de la cantidad de valores distintos. Hay otras técnicas más eficientes, pero lo que se busca es un método flexible que no afecte el tiempo de respuesta al acceder a los datos.
Almacenamiento en Columnas
El almacenamiento basado en columnas (column-based, columnar storage o columnar) es una alternativa al tradicional sistema de bases de datos relacional con su almacenamiento basado en filas.
Como se puede ver en el anterior cuadro, las debilidades del almacenamiento basado en columnas están en las operaciones de actualización e inserción de datos, la tarea menos habitual en un entorno de análisis.
Lógica de aplicaciones en bases de datos
Las técnicas anteriores están enfocadas a agilizar el acceso a la información contenida en las bases de datos. Pero las aplicaciones pueden realizar operaciones con los datos, generando un «tráfico» de ida y vuelta que puede repercutir en el rendimiento general, aumentando los tiempos de latencia o espera. Para evitar estos inconvenientes, los cálculos u operaciones que requieren las aplicaciones son procesados en donde están los datos (BBDD).