Teradata Intelligent Memory

Una de las novedades más interesantes que traerá Teradata 14.10 es “Teradata Intelligent Memory“. Vamos a ver un poco en qué consiste y para qué sirve.

Todos los RDBMS’s tienen un problema común: los IOs a disco. Esto no tiene ningún misterio: en última instancia todos los datos están almacenados en disco, y esto supone que hay que acceder a ellos mediante lecturas (y escrituras). El problema es que los IOs a disco son operaciones costosas y mucho más lentas que las análogas de acceso a memoria. (En el caso de Oracle el problema de los IOs es algo tan dramático que es ésa y no otra la razón del desarrollo de su Exadata)

Para intentar paliar en lo posible estas costosas operaciones, los RDBMS’s funcionan con unas áreas de memoria (en Teradata es “FSG caché“, en Oracle es “buffer caché“) en las que los datos leídos del disco se mantienen en memoria en previsión de que puedan necesitarse de nuevo (mediante otra “query“, por ejemplo). El objetivo es siempre ahorrar IOs. (Vamos a dejar a un lado las “in-memory databases“, puesto que son un caso muy particular y no muy aplicable a entornos de “data warehousing“).

Lo malo es que estos “buffers” son de tamaño limitado y bastante más pequeños que la capacidad total de almacenamiento de las bases de datos. Surge entonces el problema de qué datos mantener ahí y cuáles “devolver” a los discos. Los algoritmos utilizados en la mayoría de los RDBMS son de tipo MRU/LRU (most recently used/less recently used) lo que significa que los datos contenidos en los “buffers” son los últimos a los que se ha accedido en el tiempo. Si dos “queries” idénticas que acceden a los mismos datos suceden con un cierto intervalo puede ocurrir que los datos recuperados por la primera de ellas ya no estén disponibles en los “buffers” para la segunda, sino que hayan sido sustituídos (“aged out“) por otros más recientes, como consecuencia de otras “queries” ejecutadas en el sistema por otros usuarios, etc…

Cierto es que Oracle es capaz de mantener un área de memoria en la que los datos no son eliminados. Es el llamado KEEP POOL, pero está pensado para tablas pequeñas a las que se accede frecuentemente, como las tablas “lookup“. Esta área suele ser bastante limitada en tamaño.

Teradata 14.10 introduce el “Intelligent Memory“, que no es sino otra área de memoria (“buffer“). La particularidad que tiene es que el mecanismo para mantener allí los datos no es de tipo MRU/LRU, sino MFU (most frequently used). Teradata mantiene información estadística de los datos a los que se accede más frecuentemente y es capaz de mantener con ella los datos más calientes en esta área. Cuando Teradata recibe una petición (request) mira primero en el FSG caché y en esta nueva “Intelligent Memory“, de forma que es probable que los datos a los que se accede más frecuentemente estarán ahí y se evitarán con ello gran cantidad de IOs a disco.

Otra ventaja añadida es que la información acerca de la temperatura de los datos se mantiene entre arranques. Todos hemos visto la cantidad de IOs en los primeros momentos tras un arranque -ya sea Teradata, Oracle o cualquier otro RDBMS- porque los “buffers” están vacíos y deben llenarse poco a poco con la propia actividad del sistema. Por el contrario, el área de “Intelligent Memory” se llena ya desde el inicio partiendo de la información estadística almacenada, y los datos más utilizados estarán disponibles allí desde prácticamente el primer momento.

Esto se añade a otras funcionalidades que Teradata utiliza para tratar la información según su temperatura, como la posibilidad de mover los datos más calientes a unidades SSD (solid state discs) con mejor rendimiento en IO, o comprimir a nivel de bloque (block level compression) los datos más fríos (a los que se accede con poca frecuencia) para ahorrar espacio de almacenamiento.

Lo mejor de todo es que esta nueva funcionalidad es “transparente” (el sistema se encarga de su gestión) y viene instalada de fábrica.

Más información aquí.

Saludos.

Carlos.

Anuncios

Una respuesta a Teradata Intelligent Memory

  1. […] Entre las nuevas ‘features‘ anunciadas está el ‘optimizing data storage and compression according to usage patterns‘, que se parece mucho a la gestión que Teradata hace con su ‘Teradata Virtual Storage’ y la gestión de datos según su temperatura (movimiento de los datos ‘calientes’ a los SSD y la compresión a nivel de bloques de los datos más ‘fríos’) de lo que hablamos un poco aquí. […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: