El término base de datos en tiempo real tiene dos significados. El uso más común se refiere a un sistema de base de datos que utiliza tecnologías de transmisión para gestionar cargas de trabajo cuyo estado cambia constantemente. [ 1 ] Esto difiere de las bases de datos tradicionales que contienen datos persistentes , en su mayoría inalterables por el tiempo. Al referirse a las tecnologías de transmisión, el procesamiento en tiempo real significa que una transacción se procesa lo suficientemente rápido como para que el resultado esté disponible y se pueda actuar sobre él de inmediato. [ 2 ] Estas bases de datos en tiempo real son útiles para ayudar a las plataformas de redes sociales a eliminar noticias falsas, a las cámaras de vigilancia en tiendas a identificar a posibles ladrones por su comportamiento/movimientos, etc.
El segundo significado del término “base de datos en tiempo real” se adhiere a una definición más estricta de tiempo real, coherente con la computación en tiempo real . Los sistemas de bases de datos de tiempo real estricto trabajan con un sistema operativo en tiempo real para garantizar la validez temporal de los datos mediante la aplicación de plazos para las transacciones de la base de datos e incluyen un mecanismo (como políticas de programación de transacciones) para maximizar el número de transacciones confirmadas con éxito y minimizar el número de transacciones revertidas. Si bien la métrica de rendimiento para la mayoría de los sistemas de bases de datos es el rendimiento o las transacciones por segundo, la métrica de rendimiento de un sistema de base de datos de tiempo real estricto es la relación entre las transacciones confirmadas y las abortadas. Esta relación indica la eficacia de la política de programación de transacciones, con el objetivo final de cumplir los plazos el 100 % del tiempo. Las bases de datos de tiempo real estricto, mediante la aplicación de plazos, pueden no permitir que las transacciones se retrasen (excedan el plazo). [ 3 ]
Descripción general
Las bases de datos en tiempo real son bases de datos tradicionales que utilizan una extensión para brindar la capacidad adicional de generar respuestas confiables. Utilizan restricciones de tiempo que representan un cierto rango de valores para los cuales los datos son válidos. Este rango se denomina validez temporal. Una base de datos convencional no puede funcionar en estas circunstancias porque las inconsistencias entre los objetos del mundo real y los datos que los representan son demasiado severas para modificaciones simples. Un sistema eficaz debe ser capaz de manejar consultas sensibles al tiempo, devolver solo datos temporalmente válidos y admitir la programación de prioridades. Para ingresar los datos en los registros, a menudo un sensor o un dispositivo de entrada monitorea el estado del sistema físico y actualiza la base de datos con nueva información para reflejar el sistema físico con mayor precisión. [ 4 ] Al diseñar un sistema de base de datos en tiempo real , se debe considerar cómo representar el tiempo válido y cómo se asocian los hechos con el sistema en tiempo real . También se debe considerar cómo representar los valores de los atributos en la base de datos para que las transacciones de procesamiento y la consistencia de los datos no presenten violaciones.
Al diseñar un sistema, es importante considerar qué debe hacer cuando no se cumplen los plazos. [ 5 ] Por ejemplo, un sistema de control de tráfico aéreo monitorea constantemente cientos de aeronaves y toma decisiones sobre las trayectorias de vuelo entrantes, determinando el orden de aterrizaje de las aeronaves en función de datos como el combustible, la altitud y la velocidad. Si alguna de estas informaciones se retrasa, el resultado podría ser devastador. Para abordar los problemas de datos obsoletos, la marca de tiempo puede respaldar las transacciones al proporcionar referencias temporales claras.
Preservar la coherencia de los datos
Aunque el sistema de base de datos en tiempo real pueda parecer sencillo, surgen problemas durante la sobrecarga cuando dos o más transacciones de base de datos requieren acceso a la misma porción de la base de datos. Una transacción suele ser el resultado de la ejecución de un programa que accede o modifica el contenido de una base de datos. [ 6 ] Una transacción se diferencia de un flujo porque un flujo solo permite operaciones de lectura, mientras que las transacciones pueden realizar operaciones de lectura y escritura. Esto significa que en un flujo, varios usuarios pueden leer del mismo dato, pero no pueden modificarlo simultáneamente. [ 4 ] Una base de datos debe permitir que solo una transacción opere a la vez para preservar la consistencia de los datos . Por ejemplo, si dos estudiantes solicitan el cupo restante para una sección de una clase y envían su solicitud al mismo tiempo, solo uno de ellos debería poder registrarse. [ 4 ]
Las bases de datos en tiempo real pueden procesar estas solicitudes utilizando algoritmos de planificación para el control de concurrencia , priorizando de alguna manera las solicitudes de ambos estudiantes. A lo largo de este artículo, asumimos que el sistema tiene un solo procesador, una base de datos basada en disco y un grupo de memoria principal . [ 7 ]
En las bases de datos en tiempo real, se establecen plazos y diferentes tipos de sistemas responden de distintas maneras a los datos que no cumplen con su plazo. En un sistema en tiempo real, cada transacción utiliza una marca de tiempo para programar las transacciones. [ 4 ] Una unidad de mapeo de prioridad asigna un nivel de importancia a cada transacción al llegar al sistema de base de datos, que depende de cómo el sistema considera los tiempos y otras prioridades. El método de marca de tiempo se basa en el tiempo de llegada al sistema. Los investigadores indican que, en la mayoría de los estudios, las transacciones son esporádicas con tiempos de llegada impredecibles. Por ejemplo, el sistema asigna un plazo de solicitud anterior a una prioridad más alta y un plazo posterior a una prioridad más baja. [ 7 ] A continuación se muestra una comparación de diferentes algoritmos de programación.
- Fecha límite más temprana
- PT = DT — El valor de una transacción no es importante. Un ejemplo es un grupo de personas que llaman para pedir un producto.
- Valor más alto
- PT = 1/VT — El plazo no es importante. Algunas transacciones deberían llegar a la CPU en función de su criticidad, no de la equidad. Este es un ejemplo de menor margen de tiempo que puede esperar la menor cantidad de tiempo. Si las centrales telefónicas estuvieran sobrecargadas, las personas que llamen al 911 deberían tener prioridad. [ 8 ]
- Fecha límite inflada por el valor
- PT = DT/VT : Asigna igual peso a la fecha límite y a los valores según la programación. Un ejemplo es la inscripción a clases, donde el estudiante selecciona un bloque de clases que desea cursar y hace clic en enviar. En este caso, las prioridades más altas suelen tener preferencia. Un sistema de registro escolar probablemente utiliza esta técnica cuando el servidor recibe dos transacciones de registro. Si un estudiante tiene 22 créditos y el otro 100, el que tiene 100 créditos tendrá prioridad (programación basada en valores).
Restricciones de tiempo y plazos
Un sistema que percibe correctamente las restricciones de serialización y temporización asociadas a transacciones con plazos flexibles o estrictos, aprovecha la consistencia absoluta . [ 9 ] Otra forma de garantizar la absoluta exactitud de los datos es mediante el uso de restricciones relativas. Estas restricciones aseguran que las transacciones ingresen al sistema simultáneamente con el resto del grupo al que pertenecen. El uso de mecanismos de restricciones absolutas y relativas mejora considerablemente la precisión de los datos.
Una forma adicional de abordar la resolución de conflictos en un sistema de base de datos en tiempo real, además de los plazos límite, es mediante una política de espera. Este proceso ayuda a garantizar la información más reciente en sistemas críticos en tiempo real. La política evita conflictos al solicitar a todos los bloques que no realizan solicitudes que esperen hasta que se procese el bloque de datos más esencial. [ 4 ] Si bien estudios de laboratorio han demostrado que las políticas basadas en plazos límite de datos no mejoran significativamente el rendimiento, la política de espera forzada puede mejorarlo en un 50 por ciento. [ 10 ] La política de espera forzada puede implicar esperar a que se procesen las transacciones de mayor prioridad para evitar interbloqueos. Otro ejemplo de cuándo se pueden retrasar los datos es cuando un bloque de datos está a punto de expirar. La política de espera forzada retrasa el procesamiento hasta que los datos se actualizan con nuevos datos de entrada. Este último método ayuda a aumentar la precisión del sistema y puede reducir la cantidad de procesos necesarios que se abortan. En general, depender de políticas de espera no es óptimo. [ 11 ]
Es necesario analizar la formación de plazos. Los plazos son las restricciones para los datos que pronto serán reemplazados y a los que accede la transacción. Los plazos pueden ser observacionales o predictivos. [ 11 ] En un sistema de plazos observacionales, se examinan todas las transacciones incompletas y el procesador determina si alguna cumplió con su plazo. [ 4 ] Este método presenta problemas debido a variaciones causadas por variaciones en el tiempo de búsqueda, la gestión del búfer y fallos de página . [ 12 ] Una forma más estable de organizar los plazos es el método predictivo. Este crea un cronograma candidato y determina si una transacción no cumpliría con su plazo según dicho cronograma. [ 4 ]
El tipo de respuesta ante un plazo incumplido depende de si el plazo es estricto, flexible o inflexible. Los plazos estrictos requieren que cada paquete de datos llegue a su destino antes de que caduque; de lo contrario, el proceso podría perderse, lo que causaría un posible problema. Estos problemas no son muy comunes, ya que se requiere una omnipotencia del sistema antes de asignar plazos para determinar el peor escenario. Esto es muy difícil de lograr, y si ocurre algo inesperado en el sistema, como un pequeño fallo de hardware, podría afectar a los datos. En el caso de plazos flexibles o inflexibles, incumplir un plazo puede provocar una degradación del rendimiento, pero no una catástrofe. [ 7 ] Un plazo flexible cumple con la mayor cantidad de plazos posible. Sin embargo, no existe garantía de que el sistema pueda cumplir con todos los plazos. Si una transacción incumple su plazo, el sistema tiene mayor flexibilidad y la transacción puede adquirir mayor importancia. A continuación se describe cada una de estas respuestas:
- Fecha límite estricta
- Si el incumplimiento de los plazos genera problemas, lo mejor es establecer un plazo fijo. Es periódico, lo que significa que se registra en la base de datos con una regularidad rítmica. Un ejemplo son los datos recopilados por un sensor. Estos se utilizan a menudo en sistemas críticos para la vida. [ 13 ]
- Fecha límite firme
- Los plazos firmes parecen similares a los plazos estrictos, pero se diferencian de estos últimos en que los plazos firmes miden la importancia de completar la transacción en algún momento después de su llegada. A veces, completar una transacción después de que haya expirado su plazo puede ser perjudicial o contraproducente, y tanto los plazos firmes como los estrictos lo tienen en cuenta. Un ejemplo de plazo firme es un sistema de piloto automático. [ 8 ]
- Plazo flexible
- Si se desea cumplir con los plazos, pero no incumplirlos no causa daños graves, un plazo flexible puede ser la mejor opción. Este funciona con un cronograma aperiódico o irregular. De hecho, se desconoce la hora de llegada de cada tarea. Un ejemplo es una centralita telefónica. [ 13 ]
Los procesos de plazos estrictos abortan las transacciones que han superado el plazo, mejorando el sistema al eliminar la información innecesaria que debe procesarse. Estos procesos pueden eliminar no solo las transacciones con plazos vencidos, sino también las que tienen los plazos más largos, asumiendo que una vez que lleguen al procesador, quedarán obsoletas. Esto significa que otras transacciones deberían tener mayor prioridad. Además, un sistema puede eliminar las transacciones menos críticas. Cuando preseleccionaba clases durante un período de alto tráfico, un campo de la base de datos podía saturarse con solicitudes de registro, quedando inaccesible temporalmente. El resultado de mi transacción era la visualización de la consulta SQL enviada y un mensaje que indicaba que los datos no estaban disponibles. Este error se debe al verificador, un mecanismo que comprueba el estado de las reglas y la regla anterior. [ 14 ]
El objetivo de programar períodos y plazos es actualizar las transacciones que se garantiza que se completen antes de su fecha límite, de manera que la carga de trabajo sea mínima. En bases de datos grandes en tiempo real, las funciones de almacenamiento en búfer pueden ayudar a mejorar enormemente el rendimiento. Un búfer es una parte de la base de datos que se almacena en la memoria principal para reducir el tiempo de respuesta de las transacciones. Para reducir las transacciones de entrada y salida de disco, se debe asignar una cierta cantidad de búferes. [ 15 ] A veces, las multiversiones se almacenan en búferes cuando el bloque de datos que necesita la transacción está en uso. Posteriormente, se agregan los datos a la base de datos. Diferentes estrategias asignan búferes y deben equilibrar el consumo excesivo de memoria con la necesidad de tener todo en un solo búfer para su búsqueda. El objetivo es eliminar el tiempo de búsqueda y distribuir los recursos entre los marcos del búfer para acceder a los datos rápidamente. Un administrador de búferes puede asignar más memoria, si es necesario, para mejorar el tiempo de respuesta. El administrador de búferes incluso puede determinar si una transacción debe avanzar. El almacenamiento en búfer puede mejorar la velocidad en sistemas en tiempo real. [ 15 ]
Sistemas de bases de datos futuros
Las bases de datos tradicionales son persistentes, pero incapaces de gestionar datos dinámicos que cambian constantemente. Por lo tanto, se necesita otro sistema. Las bases de datos en tiempo real pueden modificarse para mejorar la precisión y la eficiencia, y para evitar conflictos, estableciendo plazos y periodos de espera que garanticen la coherencia temporal. Los sistemas de bases de datos en tiempo real permiten monitorizar un sistema físico y representarlo en flujos de datos en una base de datos. Un flujo de datos, al igual que la memoria, se deteriora con el tiempo. Para garantizar que se registre la información más reciente y precisa, existen diversas maneras de verificar las transacciones para asegurar que se ejecuten en el orden correcto. Una casa de subastas en línea es un ejemplo de una base de datos que cambia rápidamente.
Actualmente, los sistemas de bases de datos son más rápidos que antes. En el futuro, podemos esperar sistemas aún más rápidos. Si bien ahora contamos con sistemas más rápidos, seguir reduciendo los errores y los retrasos seguirá siendo beneficioso. La capacidad de procesar resultados de manera oportuna y predecible siempre será más importante que la velocidad de procesamiento. Un procesamiento rápido mal aplicado no es útil para los sistemas de bases de datos en tiempo real. Las transacciones que se ejecutan más rápido a veces se bloquean de tal manera que deben abortarse y reiniciarse. De hecho, un procesamiento más rápido perjudica a algunas aplicaciones en tiempo real, ya que el aumento de velocidad conlleva mayor complejidad y una mayor probabilidad de problemas causados por la variación de velocidad. Un procesamiento más rápido dificulta la determinación de qué plazos se han cumplido correctamente. Con los futuros sistemas de bases de datos funcionando aún más rápido que nunca, es necesario realizar más estudios para poder seguir contando con sistemas eficientes. [ 16 ]
La cantidad de investigaciones sobre sistemas de bases de datos en tiempo real aumentará debido a aplicaciones comerciales como las casas de subastas en línea tipo eBay . Cada vez más países en desarrollo expanden sus sistemas telefónicos, y el número de personas con teléfonos móviles en Estados Unidos y otros lugares del mundo sigue creciendo. El aumento exponencial de la velocidad de los microprocesadores también impulsará la investigación en tiempo real. Esto permite nuevas tecnologías como las videoconferencias web y las conversaciones de mensajería instantánea con audio y video de alta resolución, que dependen de sistemas de bases de datos en tiempo real. Los estudios de consistencia temporal dan como resultado nuevos protocolos y restricciones de tiempo con el objetivo de gestionar las transacciones en tiempo real de manera más eficaz. [ 7 ]
Referencias
- ↑ Buchmann, A. «Sistemas de bases de datos en tiempo real». Enciclopedia de tecnologías y aplicaciones de bases de datos. Editado por Laura C. Rivero, Jorge H. Doorn y Viviana E. Ferraggine. Idea Group, 2005.
- ↑ Carpron, HL, JA Johnson. Computadoras: Herramientas para la era de la información. Prentice Hall, 1998. 5.ª ed.
- ↑ "¿Qué es y qué no es un sistema de base de datos en tiempo real estricto?" . db-engines.com . Consultado el 17 de marzo de 2023 .
- 1 2 3 4 5 6 7 Abbot, Robert K., y Hector Garcia-Molina . (1992). "Programación de transacciones en tiempo real: una evaluación del rendimiento" (PDF) . ACM Transactions on Database Systems . 17 (3). Universidad de Stanford y Digital Equipment Corp. ACM: 513–560 . doi : 10.1145/132271.132276 . S2CID 28960. Recuperado el 13 de diciembre de 2006 .
{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ "Los sistemas de bases de datos en tiempo real no son realmente en tiempo real. A menos que lo sean" . www.electronicdesign.com . Consultado el 21 de enero de 2023 .
- ↑ Singhal, Mukesh. Enfoques para el diseño de sistemas de bases de datos en tiempo real, SIGMOD Record, volumen 17, n.º 1, marzo de 1988.
- 1 2 3 4 Haritsa, J., J. Stankovic y M Xiong. "Un protocolo de control de concurrencia consciente del estado para bases de datos replicadas en tiempo real" . Universidad de Virginia. Simposio de aplicaciones en tiempo real del IEEE . Recuperado el 13 de diciembre de 2006 .
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 maint: nombres múltiples: lista de autores ( enlace ) - 1 2 (Snodgrass)
- ↑ Lee, Juhnyoung (1994). "Algoritmos de control de concurrencia para sistemas de bases de datos en tiempo real" . Disertación. Universidad de Virginia . Recuperado el 13 de diciembre de 2006 .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ (Porkka)
- 1 2 Kang, K D., S Son y J Stankovic. Especificación y gestión de la calidad de los servicios de datos en tiempo real. Universidad de Virginia. IEEE TKDE, 2004.
- ^ Kao y García-Molina 1994 , págs .
- 1 2 Stankovic, John A., Marco Spuri, Krithi Ramamritham y Giorgio C. Buttazzo. Planificación de plazos para sistemas en tiempo real: EDF y algoritmos relacionados. Springer, 1998.
- ↑ (Ramamritham)
- 1 2 (O'Neil)
- ↑ Lam, Kam-Yiu y Tei-Wei Kuo. Sistemas de bases de datos en tiempo real: arquitectura y técnicas. Springer, 2001.
Lecturas adicionales
- Ozsoyoglu, Gultekin y Richard T. Snodgrass. Bases de datos temporales y en tiempo real: una revisión . Knowledge and Data Engineering, 1995. 13 de diciembre de 2006.
- Kao, Ben; Garcia-Molina, Hector (1994). "Una visión general de los sistemas de bases de datos en tiempo real". Computación en tiempo real . Berlín, Heidelberg: Springer Berlin Heidelberg. doi : 10.1007/978-3-642-88049-0_13 . ISBN 978-3-642-88051-3ISSN 0258-1248
- Lindstrom, Jan. Sistemas de bases de datos en tiempo real . Solid, 2008. 25 de marzo de 2008.
- Sivasankaran, Rajendran M., John A. Stankovic, Don Towsley , Bhaskar Purimetla y Krithi Ramamaritham. Asignación de prioridades en bases de datos activas en tiempo real . Universidad de Massachusetts. Amaherst, NY, 1996. 13 de diciembre de 2006.
- Stonebraker, Michael, et al. HStore: Un sistema de procesamiento de transacciones de memoria principal distribuido y de alto rendimiento , 2008.
- Bases de datos en tiempo real