Base de données en temps réel - Real-time database

Une base de données en temps réel est un système de base de données qui utilise un traitement en temps réel pour gérer des charges de travail dont l'état change constamment. Cela diffère des bases de données traditionnelles contenant des données persistantes , généralement non affectées par le temps. Par exemple, un marché boursier évolue très rapidement et est dynamique. Les graphiques des différents marchés semblent être très instables et pourtant une base de données doit garder une trace des valeurs actuelles pour tous les marchés de la Bourse de New York . Le traitement en temps réel signifie qu'une transaction est traitée assez rapidement pour que le résultat revienne et soit traité immédiatement. Les bases de données en temps réel sont utiles pour la comptabilité, la banque, le droit, les dossiers médicaux , le multimédia , le contrôle des processus, les systèmes de réservation et l'analyse des données scientifiques.

Aperçu

Les bases de données en temps réel sont des bases de données traditionnelles qui utilisent une extension pour donner la puissance supplémentaire nécessaire pour produire des réponses fiables. Ils utilisent des contraintes de temps qui représentent une certaine plage de valeurs pour lesquelles les données sont valides. Cette plage est appelée validité temporelle. Une base de données conventionnelle ne peut pas fonctionner dans ces circonstances car les incohérences entre les objets du monde réel et les données qui les représentent sont trop graves pour de simples modifications. Un système efficace doit être capable de traiter des requêtes urgentes, de ne renvoyer que des données valides dans le temps et de prendre en charge la planification des priorités. Pour entrer les données dans les enregistrements, souvent un capteur ou un périphérique d'entrée surveille l'état du système physique et met à jour la base de données avec de nouvelles informations pour refléter le système physique plus précisément. Lors de la conception d'un système de base de données en temps réel , il convient de considérer comment représenter le temps valide, comment les faits sont associés au système en temps réel . Envisagez également comment représenter les valeurs d'attribut dans la base de données afin que les transactions de processus et la cohérence des données ne comportent aucune violation.

Lors de la conception d'un système, il est important de considérer ce que le système doit faire lorsque les délais ne sont pas respectés. Par exemple, un système de contrôle du trafic aérien surveille en permanence des centaines d'aéronefs et prend des décisions sur les trajectoires de vol entrantes et détermine l'ordre dans lequel les aéronefs doivent atterrir en fonction de données telles que le carburant, l'altitude et la vitesse. Si l'une de ces informations est en retard, le résultat pourrait être dévastateur. Pour résoudre les problèmes de données obsolètes, l' horodatage peut prendre en charge les transactions en fournissant des références de temps claires.

Préserver la cohérence des données

Bien que le système de base de données en temps réel puisse sembler être un système simple, des problèmes surviennent lors de la surcharge lorsque deux ou plusieurs transactions de base de données nécessitent un accès à la même partie de la base de données. Une transaction est généralement le résultat de l'exécution d'un programme qui accède ou modifie le contenu d'une base de données. Une transaction est différente d'un flux car un flux autorise uniquement les opérations en lecture seule et les transactions peuvent effectuer à la fois des opérations de lecture et d'écriture. Cela signifie que dans un flux, plusieurs utilisateurs peuvent lire à partir du même élément de données, mais ils ne peuvent pas tous les deux le modifier. Une base de données ne doit permettre qu'une seule transaction à la fois pour préserver la cohérence des données . Par exemple, si deux étudiants demandent à occuper la place restante pour une section d'une classe et qu'ils appuient sur Soumettre en même temps, un seul étudiant devrait pouvoir s'inscrire.

Les bases de données en temps réel peuvent traiter ces demandes en utilisant des algorithmes de planification pour le contrôle de la concurrence , en priorisant les demandes des deux étudiants d'une manière ou d'une autre. Tout au long de cet article, nous supposons que le système dispose d'un seul processeur, d'une base de données sur disque et d'un pool de mémoire principale.

Dans les bases de données en temps réel, des délais sont formés et différents types de systèmes répondent de différentes manières aux données qui ne respectent pas leurs délais. Dans un système en temps réel, chaque transaction utilise un horodatage pour planifier les transactions. Une unité de mappage de priorité attribue un niveau d'importance à chaque transaction à son arrivée dans le système de base de données qui dépend de la façon dont le système voit les heures et d'autres priorités. La méthode d'horodatage repose sur l'heure d'arrivée dans le système. Les chercheurs indiquent que pour la plupart des études, les transactions sont sporadiques avec des heures d'arrivée imprévisibles. Par exemple, le système attribue une date limite de demande antérieure à une priorité plus élevée et une date limite ultérieure à une priorité inférieure. Vous trouverez ci-dessous une comparaison de différents algorithmes de planification.

Date limite au plus tôt
PT = DT - La valeur d'une transaction n'est pas importante. Un exemple est un groupe de personnes appelant pour commander un produit.
Valeur la plus élevée
PT = 1 / VT - La date limite n'est pas importante. Certaines transactions doivent parvenir au processeur en fonction de leur criticité et non de leur équité. Ceci est un exemple de moindre relâche qui peut attendre le moins de temps. Si les standards téléphoniques étaient surchargés, les personnes qui appellent le 911 devraient avoir la priorité.
Valeur limite gonflée
PT = DT / VT - Donne un poids égal à l'échéance et aux valeurs basées sur la planification. Un exemple est l'inscription à des cours où l'étudiant sélectionne un bloc de cours qu'il souhaite suivre et appuie sur Soumettre. Dans ce scénario, les priorités plus élevées prennent souvent la priorité. Un système d'inscription scolaire utilise probablement cette technique lorsque le serveur reçoit deux transactions d'inscription. Si un étudiant avait 22 crédits et l'autre 100 crédits, la personne avec 100 crédits aurait la priorité (planification basée sur la valeur).

Contraintes de temps et délais

Un système qui perçoit correctement les contraintes de sérialisation et de timing associées aux transactions avec des délais souples ou fermes, bénéficie d' une cohérence absolue . Une autre façon de s'assurer que les données sont absolues consiste à utiliser des contraintes relatives. Les contraintes relatives garantissent que les transactions entrent dans le système en même temps que le reste du groupe auquel la transaction de données est associée. L'utilisation des mécanismes de contraintes absolues et relatives garantit grandement l'exactitude des données.

Une méthode supplémentaire de résolution des conflits dans un système de base de données en temps réel en plus des délais est une méthode de politique d'attente. Ce processus permet de garantir les dernières informations dans les systèmes critiques en temps. La politique évite les conflits en demandant à tous les blocs non demandeurs d'attendre que le bloc de données le plus essentiel soit traité. Alors que des études en laboratoire ont montré que les stratégies basées sur les délais de données n'améliorent pas les performances de manière significative, la stratégie d'attente forcée peut améliorer les performances de 50%. La stratégie d'attente forcée peut impliquer l'attente de transactions de priorité plus élevée à traiter afin d'éviter un blocage. Un autre exemple de retard de données est celui d'un bloc de données sur le point d'expirer. La politique d'attente forcée retarde le traitement jusqu'à ce que les données soient mises à jour à l'aide de nouvelles données d'entrée. Cette dernière méthode permet d'augmenter la précision du système et peut réduire le nombre de processus nécessaires qui sont interrompus. En général, se fier aux politiques d'attente n'est pas optimal.

Il est nécessaire de discuter de la formation des délais. Les délais sont les contraintes pour les données bientôt remplacées auxquelles la transaction accède. Les délais peuvent être soit observateurs, soit prédictifs. Dans un système respectant les délais, toutes les transactions inachevées sont examinées et le sous-traitant détermine si l'une d'entre elles a respecté son délai. Des problèmes surviennent dans cette méthode en raison des variations causées par les variations de temps de recherche, la gestion de la mémoire tampon et les défauts de page . La méthode prédictive est une manière plus stable d'organiser les délais. Il construit un calendrier candidat et détermine si une transaction manquerait son échéance selon le calendrier.

Le type de réponse à un délai non respecté dépend du fait que le délai est ferme, souple ou ferme. Les délais stricts exigent que chaque paquet de données atteigne sa destination avant l'expiration du paquet et sinon, le processus pourrait être perdu, provoquant un problème possible. Des problèmes comme ceux-ci ne sont pas très courants car la toute-puissance du système est requise avant d'attribuer des délais pour déterminer le pire des cas. C'est très difficile à faire et si quelque chose d'inattendu arrive au système, comme un petit problème matériel, cela peut entraîner la perte des données. Pour des délais souples ou fermes, le non-respect d'un délai peut conduire à une performance dégradée mais pas à une catastrophe. Un délai doux respecte autant de délais que possible. Cependant, aucune garantie n'existe que le système peut respecter tous les délais. Si une transaction ne respecte pas son échéance, le système est plus flexible et la transaction peut prendre de l'importance. Voici une description de ces réponses:

Délai contraignant
Si le non-respect des délais crée des problèmes, une échéance difficile est préférable. Il est périodique, c'est-à-dire qu'il entre dans la base de données sur un motif rythmique régulier. Un exemple est les données collectées par un capteur. Ceux-ci sont souvent utilisés dans les systèmes vitaux.
Délai ferme
Les délais fermes semblent similaires aux délais stricts, mais ils diffèrent des délais stricts, car les délais fermes mesurent à quel point il est important de terminer la transaction à un moment donné après que la transaction arrive. Parfois, terminer une transaction après l'expiration de son délai peut être nuisible ou inutile, et les délais fermes et stricts en tiennent compte. Un exemple de délai ferme est un système de pilote automatique.
Délai souple
Si le respect des contraintes de temps est souhaitable mais que les délais manquants ne causent pas de graves dommages, un délai souple peut être préférable. Il fonctionne selon un horaire apériodique ou irrégulier. En fait, l'arrivée de chaque fois pour chaque tâche est inconnue. Un exemple est un standard opérateur pour un téléphone.

Les processus à échéance stricte annulent les transactions qui ont dépassé la date limite, améliorant le système en éliminant le désordre qui doit être traité. Les processus peuvent effacer non seulement les transactions dont les délais sont expirés, mais également les transactions avec les délais les plus longs, en supposant qu'une fois arrivés au processeur, ils seraient obsolètes. Cela signifie que les autres transactions doivent avoir une priorité plus élevée. De plus, un système peut supprimer les transactions les moins critiques. Lorsque je présélectionnais des classes pendant une période de trafic élevé, un champ de la base de données peut devenir tellement occupé par les demandes d'enregistrement qu'il était indisponible pendant un certain temps et le résultat de ma transaction était un affichage de la requête SQL envoyée et un message cela dit que les données ne sont actuellement pas disponibles. Cette erreur est causée par le vérificateur, un mécanisme qui vérifie l'état des règles et la règle qui s'est produite avant elle.

Le but de la planification des périodes et des délais est de mettre à jour les transactions dont l'exécution est garantie avant leur échéance de manière à ce que la charge de travail soit minimale. Avec de grandes bases de données en temps réel, les fonctions de mise en mémoire tampon peuvent contribuer à améliorer considérablement les performances. Un tampon fait partie de la base de données qui est stockée dans la mémoire principale pour réduire le temps de réponse des transactions. Afin de réduire les transactions d'entrée et de sortie du disque, un certain nombre de tampons doit être alloué. Parfois, les multiversions sont stockées dans des tampons lorsque le bloc de données dont la transaction a besoin est actuellement utilisé. Plus tard, les données sont ajoutées à la base de données. Différentes stratégies allouent des tampons et doivent équilibrer entre prendre une quantité excessive de mémoire et avoir tout dans un tampon qu'il doit rechercher. L'objectif est d'éliminer le temps de recherche et de répartir les ressources entre les trames tampons afin d'accéder rapidement aux données. Un gestionnaire de tampons est capable d'allouer plus de mémoire, si nécessaire, pour améliorer le temps de réponse. Le gestionnaire de tampons peut même déterminer si une transaction qu'il a doit avancer. La mise en mémoire tampon peut améliorer la vitesse des systèmes en temps réel.

Futurs systèmes de bases de données

Les bases de données traditionnelles sont persistantes mais sont incapables de traiter des données dynamiques qui changent constamment. Par conséquent, un autre système est nécessaire. Les bases de données en temps réel peuvent être modifiées pour améliorer l'exactitude et l'efficacité et pour éviter les conflits, en prévoyant des délais et des périodes d'attente pour assurer la cohérence temporelle. Les systèmes de base de données en temps réel offrent un moyen de surveiller un système physique et de le représenter sous forme de flux de données vers une base de données. Un flux de données, comme la mémoire, s'estompe avec le temps. Afin de garantir que les informations les plus récentes et les plus précises soient enregistrées, il existe un certain nombre de façons de vérifier les transactions pour s'assurer qu'elles sont exécutées dans le bon ordre. Une maison de vente aux enchères en ligne fournit un exemple de base de données en évolution rapide.

Aujourd'hui, les systèmes de bases de données sont plus rapides qu'ils ne l'étaient par le passé. À l'avenir, nous pouvons nous attendre à des systèmes de base de données encore plus rapides. Bien que nous ayons maintenant des systèmes plus rapides, un effort pour réduire les échecs et les retards sera toujours bénéfique. La capacité de traiter les résultats de manière rapide et prévisible sera toujours plus importante qu'un traitement rapide. Un traitement rapide mal appliqué n'est pas utile pour les systèmes de base de données en temps réel. Les transactions qui s'exécutent plus rapidement se bloquent parfois de telle sorte qu'elles doivent être annulées et redémarrées. En fait, un traitement plus rapide nuit à certaines applications en temps réel, car une vitesse accrue apporte plus de complexité et plus de risques pour les problèmes causés par une variance de vitesse. Un traitement plus rapide rend plus difficile la détermination des délais qui ont été respectés avec succès. Les futurs systèmes de bases de données fonctionnant encore plus vite que jamais, il est nécessaire de faire plus d'études afin que nous puissions continuer à avoir des systèmes efficaces.

La quantité de recherches sur les systèmes de bases de données en temps réel augmentera en raison des applications commerciales telles que les maisons de vente aux enchères en ligne comme eBay . De plus en plus de pays en développement étendent leurs systèmes de téléphonie et le nombre de personnes possédant un téléphone portable aux États-Unis ainsi que dans d'autres régions du monde continue de croître. La vitesse croissante exponentielle du microprocesseur est également susceptible de stimuler la recherche en temps réel. Cela permet également de nouvelles technologies telles que la visioconférence Web et les conversations par messagerie instantanée en son et en vidéo haute résolution, qui reposent sur des systèmes de base de données en temps réel. Les études de cohérence temporelle se traduisent par de nouveaux protocoles et des contraintes de temps dans le but de gérer plus efficacement les transactions en temps réel.

Les références

Lectures complémentaires