saltar al contenido

Tablas circulares y claves primarias optimizadas

Algunos casos de uso requieren que los datos se almacenen durante un tiempo limitado. La serie temporal es uno de esos casos de uso en el que los datos se introducen mediante una marca de tiempo. Las mediciones pueden recopilarse de sensores a alta frecuencia, codificarse y almacenarse, recuperarse más tarde usando la tecla y luego analizarse. Debido al volumen, es posible que algunos de estos datos deban depurarse más adelante. Aquí es donde prosperan las tablas circulares y las claves primarias optimizadas de RDM.

 

Las tablas circulares y las claves primarias rediseñadas para RDM 15.0 se optimizan con este caso de uso en mente. Cuando los datos se almacenan en tablas circulares, se supone que los datos en general se reciben e insertan en orden de clave. Cuando la tabla circular está "llena", los datos más antiguos se eliminan automáticamente de la base de datos. Este patrón de operación puede ser un orden de magnitud más eficiente en comparación con los insertos que no están ordenados². Este puede ser el caso tanto con respecto al tiempo de CPU como a la cantidad de E / S. La razón de esta mayor eficiencia es que las estructuras de datos internas son muy eficientes cuando todas las inserciones tienen valores de clave primaria crecientes y todas las eliminaciones tienen los valores mínimos de clave primaria.

 

Copiar en escrito

Otra decisión de diseño en RDM que contribuye a la eficiencia de las mesas circulares es que RDM no Copiar en escrito sin utilizar un registro de transacciones. Esto es beneficioso por dos razones. Primero, sin un registro de transacciones, los datos se escriben solo una vez.³ En segundo lugar, con la copia en escritura, una instantánea de los datos se puede implementar de manera muy eficiente, dando acceso a los datos sin necesidad de bloqueos y aún teniendo una vista consistente de los datos escritos previamente.

 

Instantáneas

Los datos agregados a tablas circulares y confirmados pueden estar disponibles para una instantánea poco después. Las aplicaciones que hacen esto observarán un mayor rendimiento en comparación con las aplicaciones que utilizan los datos mucho más tarde. Esto se debe al almacenamiento en caché. Sin una implementación de instantánea eficiente, es posible que no hubiera sido posible utilizar los datos poco después de la inserción debido a la penalización en el rendimiento causada por tener que depender de bloqueos.

 

Pasar la aspiradora

Por último, las tablas circulares en las que se depuran los datos más antiguos a menudo no se terminan copiando durante Pasar la aspiradora dado que los datos ya se han purgado cuando el archivo del paquete real está sujeto a la aspiración.

 

Usar una clave principal en lugar de un ID de fila

Las versiones anteriores de RDM siempre usaban Row-ID para ubicar los datos de las filas. Con RDM 15.0, cambiamos eso. En el caso de que se defina una clave principal, se utiliza el valor de la clave principal en lugar del ID de fila. Esto tiene un par de beneficios adicionales. Primero, para las referencias externas, ya no necesitamos buscar la fila externa para encontrar la clave primaria correspondiente, ya que la clave primaria se usa para la referencia. En segundo lugar, la fila se puede codificar sin incluir la clave principal, ya que la clave principal se utiliza para cualquier referencia a ella.

 

Unión de base de datos

RDM tiene la capacidad de abrir varias bases de datos para su lectura en una vista (unión de bases de datos). La clave principal optimizada, donde usamos una clave principal en lugar de un Row-ID para ubicar los datos de la fila, hace que la unión sea más eficiente para ubicar la fecha ordenada por la clave principal. A menudo no tenía sentido recuperar los datos en el orden de ID de fila donde las filas con el mismo ID de fila de diferentes bases de datos se colocaban juntas, ya que las ID de fila de diferentes bases de datos pueden no estar relacionadas.

 

Palabra final

Todos estos factores contribuyen a un gran rendimiento para muchos casos de uso que involucran tablas circulares. ¿Listo para empezar? Descargar Administrador de base de datos Raima aquí.

 

por Sverre Hvammen Johansen y Daigoro Toyama

¹O cerca del pedido de llaves
²Esta afirmación es menos cierta si la cantidad de datos para cada valor de clave principal es grande o si las transacciones solo insertan una o unas pocas filas a la vez.
³Suponiendo que no se pasa la aspiradora