Echtzeit-Datenbank

A Echtzeit-Datenbank ist ein Datenbanksystem was verwendet Echtzeitverarbeitung Um mit Workloads zu handhaben, deren Zustand sich ständig ändert.[1] Dies unterscheidet sich von traditionellen Datenbanken, die enthalten anhaltende Daten, meistens nicht von der Zeit nicht betroffen. Zum Beispiel ändert sich ein Aktienmarkt sehr schnell und ist dynamisch. Die Grafiken der verschiedenen Märkte scheinen sehr instabil zu sein, und dennoch muss eine Datenbank die aktuellen Werte für alle Märkte von verfolgen die New Yorker Börse.[2] Echtzeitverarbeitung bedeutet, dass eine Transaktion schnell genug verarbeitet wird, damit das Ergebnis zurückkommt und sofort bewirkt wird.[3] Echtzeitdatenbanken sind nützlich für Rechnungswesen, Bankwesen, Recht, Gesetz, medizinische Aufzeichnungen, Multimedia, Prozesskontrolle, Reservierungssysteme und wissenschaftliche Datenanalyse.[4]

Überblick

Echtzeitdatenbanken sind herkömmliche Datenbanken, die eine Erweiterung verwenden, um die zusätzliche Leistung zu verleihen, um zuverlässige Antworten zu erhalten. Sie verwenden Zeitbeschränkungen, die einen bestimmten Wertebereich darstellen, für den die Daten gültig sind. Dieser Bereich wird als zeitliche Gültigkeit bezeichnet. Eine konventionelle Datenbank kann unter diesen Umständen nicht funktionieren, da die Inkonsistenzen zwischen den realen Objekten und den Daten, die sie darstellen, für einfache Modifikationen zu schwerwiegend sind. Ein effektives System muss in der Lage sein, zeitkritische Abfragen zu verarbeiten, nur zeitlich gültige Daten zurückzugeben und die Prioritätsplanung zu unterstützen. Um die Daten in die Datensätze einzugeben, überwacht häufig ein Sensor oder ein Eingabegerät den Status des physischen Systems und aktualisiert die Datenbank mit neuen Informationen, um das physische System genauer zu reflektieren.[5] Bei der Gestaltung einer Echtzeit Datenbanksystem, man sollte überlegen, wie man eine gültige Zeit darstellt, wie Fakten mit dem Zusammenhang mit dem Zusammenhang stehen Echtzeitsystem. Überlegen Sie auch, wie Attributwerte in der Datenbank dargestellt werden können, damit Prozesstransaktionen und Datenkonsistenz keine Verstöße haben.

Beim Entwerfen eines Systems ist es wichtig zu berücksichtigen, was das System tun soll, wenn Fristen nicht eingehalten werden. Zum Beispiel eine Luftraumüberwachung Das System überwacht ständig Hunderte von Flugzeugen und trifft Entscheidungen über eingehende Flugwege und bestimmt die Reihenfolge, in der Flugzeuge auf Daten wie Kraftstoff, Höhe und Geschwindigkeit landen sollten. Wenn eine dieser Informationen zu spät ist, könnte das Ergebnis verheerend sein. Um Probleme der veralteten Daten anzugehen, die Zeitstempel kann Transaktionen unterstützen, indem sie klare Zeitreferenzen bereitstellen.

Aufrechterhaltung der Datenkonsistenz

Obwohl das Echtzeit-Datenbanksystem wie ein einfaches System erscheinen mag, treten Probleme bei der Überlastung auf, wenn zwei oder mehr Datenbanktransaktionen Zugriff auf denselben Teil der Datenbank erfordern. EIN Transaktion ist normalerweise das Ergebnis einer Ausführung eines Programms, das auf den Inhalt einer Datenbank zugreift oder ändert.[6] Eine Transaktion unterscheidet sich von einem Stream, da ein Stream nur schreibgeschützte Vorgänge ermöglicht und Transaktionen sowohl lesen als auch Schreibvorgänge ausführen können. Dies bedeutet, dass in einem Stream mehrere Benutzer aus denselben Daten gelesen werden können, aber sie können sie jedoch nicht ändern.[5] Eine Datenbank muss nur eine Transaktion zum Zeitpunkt der Aufbewahrung betreiben lassen Datenkonsistenz. Wenn zwei Schüler beispielsweise verlangen, dass sie den verbleibenden Platz für einen Abschnitt einer Klasse einnehmen und gleichzeitig die Einreichung treffen, sollte nur ein Schüler in der Lage sein, sich dafür zu registrieren.[5]

Echtzeitdatenbanken können diese Anfragen verarbeiten, die verwendet werden Planungsalgorithmen zum ParallelitätskontrollePriorisierung der Anfragen beider Studenten in irgendeiner Weise. In diesem Artikel gehen wir davon aus, dass das System über einen einzelnen Prozessor, eine diskbasierte Datenbank und einen Hauptspeicherpool verfügt.[7]

In Echtzeitdatenbanken werden Fristen gebildet und verschiedene Arten von Systemen auf Daten reagieren, die der Frist nicht auf unterschiedliche Weise entsprechen. In einem Echtzeitsystem verwendet jede Transaktion einen Zeitstempel, um die Transaktionen zu planen.[5] Eine Priority Mapper -Einheit weist jeder Transaktion bei ihrer Ankunft im Datenbanksystem ein Wichtigkeitsniveau zu, das davon abhängt, wie das System die Zeiten und andere Prioritäten anzeigt. Die Zeitstempelmethode beruht auf der Ankunftszeit im System. Forscher geben an, dass Transaktionen für die meisten Studien sporadisch mit unvorhersehbaren Ankunftszeiten sind. Zum Beispiel gibt das System eine frühere Antragsfrist zu einer höheren Priorität und einer späteren Frist für eine niedrigere Priorität.[7] Im Folgenden finden Sie einen Vergleich verschiedener Planungsalgorithmen.

Früheste Frist
Pt = dt - Der Wert einer Transaktion ist nicht wichtig. Ein Beispiel ist eine Gruppe von Personen, die anrufen, um ein Produkt zu bestellen.
Höchster Wert
Pt = 1/vt - Die Frist ist nicht wichtig. Einige Transaktionen sollten auf der Grundlage von Kritikalität und nicht auf Fairness zur CPU gelangen. Dies ist ein Beispiel für die geringste Lücke, die die geringste Zeit warten kann. Wenn die Telefonschalter überladen waren, sollten Personen, die 911 anrufen, Priorität.[4]
Wert aufgeblasener Frist
Pt = dt/vt - Gibt gleich Gewicht an die Frist und Werte, die auf der Planung basieren. Ein Beispiel ist die Registrierung für Klassen, in denen der Schüler einen Klassenblock auswählt, den er nehmen möchte, und drückt ein. In diesem Szenario haben höhere Prioritäten häufig Vorrang. Ein Schulregistrierungssystem verwendet diese Technik wahrscheinlich, wenn der Server zwei Registrierungstransaktionen erhält. Wenn ein Schüler 22 Credits und der andere 100 Credits hätte, würde die Person mit 100 Gutschriften vorrangig (wertbasierte Zeitplanung) haben.

Zeitbeschränkungen und Fristen

Ein System, das die Serialisierungs- und Zeiteinschränkungen, die mit Transaktionen mit weichen oder festen Fristen verbunden sind, korrekt wahrnimmt absolute Konsistenz.[8] Eine andere Möglichkeit, um sicherzustellen, dass Daten absolut sind, besteht darin, relative Einschränkungen zu verwenden. Relative Einschränkungen stellen sicher, dass Transaktionen gleichzeitig mit dem Rest der Gruppe, mit der die Datentransaktion verbunden ist, in das System eingeben. Die Verwendung der Mechanismen absoluter und relativer Einschränkungen gewährleistet die Genauigkeit der Daten stark.

Eine zusätzliche Möglichkeit, sich mit der Konfliktlösung in einem Echtzeit-Datenbanksystem neben den Fristen zu befassen, ist eine Wartepolitikmethode. Dieser Prozess trägt dazu bei, die neuesten Informationen rechtzeitig kritischer Systeme zu gewährleisten. Die Richtlinie vermeidet Konflikte, indem sie alle Nicht-Anstiegsblöcke auffordert, zu warten, bis der wichtigste Datenblock verarbeitet wird.[5] Während Studien in Labors ergeben haben, dass datenmodellbasierte Richtlinien die Leistung nicht wesentlich verbessern, kann die Zwangswartrichtlinie die Leistung um 50 Prozent verbessern.[9] Die erzwungene Wartepolitik kann das Warten auf eine Verarbeitung von Transaktionen mit höherer Priorität beinhalten, um Deadlock zu verhindern. Ein weiteres Beispiel dafür, wann Daten verzögert werden können, ist, wenn ein Datenblock ausfällt. Die Zwangswartrichtlinie verzögert die Verarbeitung, bis die Daten mit neuen Eingabedaten aktualisiert werden. Die letztere Methode erhöht die Genauigkeit des Systems und kann die Anzahl der erforderlichen Prozesse verringern, die abgebrochen werden. Im Allgemeinen ist es nicht optimal, sich auf Wartepolitik zu verlassen.[10]

Es ist notwendig, die Bildung von Fristen zu diskutieren. Termine sind die Einschränkungen für bald ersetzte Daten, auf die die Transaktion zugegriffen werden. Fristen können entweder aufmerksam oder prädiktiv sein.[10] In einem aufmerksamen Deadline -System werden alle unvollendeten Transaktionen untersucht und der Prozessor bestimmt, ob irgendjemand seine Frist eingehalten hat.[5] Probleme auftreten bei dieser Methode aufgrund von Variationen, die durch Suchvariationen verursacht werden. Puffer Management und Seitenfehler.[11] Eine stabilere Methode zur Organisation von Fristen ist die Vorhersagemethode. Es erstellt einen Kandidatenplan und bestimmt, ob eine Transaktion ihre Frist nach dem Zeitplan verpassen würde.[5]

Die Art der Reaktion auf eine fehlende Frist hängt davon ab, ob die Frist hart, weich oder fest ist. Harte Fristen erfordern, dass jedes Datenpaket sein Ziel erreicht, bevor das Paket abgelaufen ist, und wenn nicht, kann der Prozess verloren gehen, was ein mögliches Problem verursacht. Probleme wie diese sind nicht sehr häufig, da die Allmacht des Systems erforderlich ist, bevor Fristen zugewiesen werden, um den schlechtesten Fall zu bestimmen. Dies ist sehr schwer zu tun, und wenn das System wie eine winzige Hardware -Panne etwas Unerwartetes passiert, kann es die Daten auswerfen. Für weiche oder feste Fristen kann das Fehlen einer Frist zu einer degradierten Leistung, nicht jedoch zu einer Katastrophe führen.[7] Eine weiche Frist entspricht so viele Fristen wie möglich. Es gibt jedoch keine Garantie dafür, dass das System alle Fristen einhalten kann. Sollte eine Transaktion ihre Frist verpassen, hat das System mehr Flexibilität und die Transaktion kann die Bedeutung erhöhen. Unten finden Sie eine Beschreibung dieser Antworten:

Harter Abgabetermin
Wenn nicht die Fristen einhalten, schafft es Probleme, eine harte Frist am besten zu haben. Es ist periodisch, was bedeutet, dass es in einem regulären rhythmischen Muster in die Datenbank eingeht. Ein Beispiel sind Daten, die von einem Sensor gesammelt werden. Diese werden oft in lebenskritischen Systemen verwendet.[12]
Feste Frist
Die festen Fristen scheinen den harten Fristen ähnlich zu sein, unterscheiden sich jedoch von harten Fristen, da feste Fristen messen, wie wichtig es ist, die Transaktion irgendwann nach Eingang der Transaktion abzuschließen. Manchmal ist das Abschließen einer Transaktion nach Ablauf der Frist möglicherweise schädlich oder nicht hilfreich, und sowohl die festen als auch die harten Fristen betrachten dies. Ein Beispiel für eine feste Frist ist ein Autopilotensystem.[4]
Weiche Frist
Wenn die Einschränkung der Besprechungszeit wünschenswert ist, aber fehlende Fristen keinen ernsthaften Schaden verursachen, ist eine weiche Frist am besten. Es arbeitet auf einem aperiodischen oder unregelmäßigen Zeitplan. Tatsächlich ist die Ankunft jeder Zeit für jede Aufgabe unbekannt. Ein Beispiel ist eine Bedienerschalttafel für ein Telefon.[12]

Harte Terminprozesse abbrechen Transaktionen, die die Frist überschritten haben und das System durch Reinigung von Unordnung verbessert, die verarbeitet werden müssen. Prozesse können nicht nur die Transaktionen mit abgelaufenen Fristen, sondern auch Transaktionen mit den längsten Fristen ausräumen, vorausgesetzt, sie würden veraltet, sobald sie den Prozessor erreichen. Dies bedeutet, dass andere Transaktionen eine höhere Priorität haben sollten. Darüber hinaus kann ein System die am wenigsten kritischen Transaktionen entfernen. Als ich während eines hohen Verkehrszeitraums Kurse vorab ausgewählt habe, kann ein Feld in der Datenbank mit Registrierungsanfragen so beschäftigt sein, dass es für eine Weile nicht verfügbar war und das Ergebnis meiner Transaktion eine Anzeige der gesendeten SQL-Abfrage und einer Nachricht war Das heißt, die Daten sind derzeit nicht verfügbar. Dieser Fehler wird durch den Checker verursacht, ein Mechanismus, der die Bedingung der Regeln überprüft, und die vor ihm aufgetretene Regel.[13]

Das Ziel der Planung von Zeiträumen und Fristen ist es, Transaktionen zu aktualisieren, die garantiert vor ihrer Frist so abgeschlossen sind, dass die Arbeitsbelastung minimal ist. Bei großen Echtzeit-Datenbanken können Pufferfunktionen dazu beitragen, die Leistung enorm zu verbessern. Ein Puffer ist Teil der Datenbank, die im Hauptspeicher gespeichert ist, um die Transaktionsantwortzeit zu verkürzen. Um die Disk -Eingangs- und Ausgangstransaktionen zu reduzieren, sollte eine bestimmte Anzahl von Puffern zugewiesen werden.[14] Manchmal werden Multiversionen in Puffern gespeichert, wenn der Datenblock der Transaktionsanforderungen derzeit verwendet wird. Später enthält die Datenbank die Daten angehängt. Verschiedene Strategien weisen Puffer zu und müssen zwischen übermäßigem Gedächtnis und alles in einem Puffer haben, nach dem es suchen muss. Ziel ist es, die Suchzeit zu beseitigen und die Ressourcen zwischen Pufferrahmen zu verteilen, um schnell auf Daten zuzugreifen. Ein Puffermanager kann bei Bedarf mehr Speicher zuweisen, um die Reaktionszeit zu verbessern. Der Puffermanager kann sogar feststellen, ob eine Transaktion, die er vorantreiben soll. Die Pufferung kann die Geschwindigkeit in Echtzeitsystemen verbessern.[14]

Zukünftige Datenbanksysteme

Traditionelle Datenbanken sind hartnäckig, aber nicht in der Lage, sich mit dynamischen Daten zu befassen, die sich ständig ändert. Daher wird ein anderes System benötigt. Echtzeitdatenbanken können geändert werden, um die Genauigkeit und Effizienz zu verbessern und Konflikte zu vermeiden, durch die Bereitstellung von Fristen und Wartezeiten, um eine zeitliche Konsistenz zu gewährleisten. Echtzeit-Datenbanksysteme bieten eine Möglichkeit, ein physisches System zu überwachen und zu repräsentieren Datenströme zu einer Datenbank. Ein Datenstrom wie Gedächtnis verblasst im Laufe der Zeit. Um sicherzustellen, dass die frischesten und genauesten Informationen aufgezeichnet werden, gibt es eine Reihe von Möglichkeiten, Transaktionen zu überprüfen, um sicherzustellen, dass sie in der richtigen Reihenfolge ausgeführt werden. Ein Online -Auktionshaus bietet ein Beispiel für eine sich schnell ändernde Datenbank.

Jetzt sind Datenbanksysteme schneller als in der Vergangenheit. In Zukunft können wir uns auf noch schnellere Datenbanksysteme freuen. Obwohl wir jetzt schnellere Systeme haben, sind die Anstrengungen zur Reduzierung von Fehlschlägen und verspäteten Zeiten immer noch vorteilhaft. Die Fähigkeit zur Verarbeitung führt zu zeitnah und vorhersehbarer Weise ist immer wichtiger als die schnelle Verarbeitung. Eine falsche Verarbeitung, die falsch angewendet wird, ist für Echtzeit-Datenbanksysteme nicht hilfreich. Transaktionen, die schneller laufen, blockieren immer noch manchmal so, dass sie abgebrochen und neu gestartet werden müssen. In der Tat schadet eine schnellere Verarbeitung einige Echtzeitanwendungen, da eine erhöhte Geschwindigkeit mehr Komplexität und mehr Chance auf Probleme darstellt, die durch eine Geschwindigkeitsabweichung verursacht werden. Eine schnellere Verarbeitung macht es schwieriger zu bestimmen, welche Fristen erfolgreich eingehalten wurden. Bei zukünftigen Datenbanksystemen, die noch schneller als je zuvor ausgeführt werden, müssen mehr Studien durchgeführt werden, damit wir weiterhin effiziente Systeme haben können.[15]

Die Menge an Forschungsstudien, die Echtzeit-Datenbanksysteme untersuchen Ebay. Weitere Entwicklungsländer erweitern ihre Telefonsysteme, und die Anzahl der Menschen mit Mobiltelefonen in den USA sowie an anderen Orten der Welt wächst weiter. Auch die Echtzeitforschung ist wahrscheinlich die exponentiell zunehmende Geschwindigkeit des Mikroprozessors. Dies ermöglicht auch neue Technologien wie Web-Videokonferenzen und Sofortnachrichtendienst Konversationen im Klang- und hochauflösenden Video, die auf Echtzeit-Datenbanksysteme angewiesen sind. Studien zur zeitlichen Konsistenz führen zu neuen Protokollen und zeitlichen Einschränkungen mit dem Ziel, Echtzeittransaktionen effektiver zu behandeln.[7]

Verweise

  1. ^ Buchmann, A. "Echtzeit -Datenbanksysteme." Enzyklopädie von Datenbanktechnologien und Anwendungen. Ed. Laura C. Rivero, Jorge H. Doorn und Viviana E. Ferraggine. Idea Group, 2005.
  2. ^ Kanitkar, Vinay & Alex Delis (1997). "Ein Fall für Echtzeit-Client-Server-Datenbanken". Brooklyn, New York: Polytechnic University. Abgerufen 13. Dezember 2006. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  3. ^ Carpron, H. L., J. A. Johnson. Computer: Tools für das Informationsalter. Prentice Hall, 1998. 5. Aufl.
  4. ^ a b c (Snodgrass)
  5. ^ a b c d e f g Abbot, Robert K. und Hector Garcia-Molina. (1992). "Echtzeit-Transaktionen Planen: Eine Leistungsbewertung" (PDF). Stanford University und Digital Equipment Corp. ACM. doi:10.1145/132271.132276. Abgerufen 13. Dezember 2006. {{}}: Journal zitieren erfordert |journal= (Hilfe)CS1 Wartung: Mehrere Namen: Autorenliste (Link)
  6. ^ Singhal, Mukesh. Ansätze zum Entwurf von Echtzeit-Datenbanksystemen, Sigmod-Datensatz, Band 17, Nr. 1. März 1988
  7. ^ a b c d Haritsa, J., J. Stankovic und M Xiong. "Ein staatbewusstes Parallelitätskontrollprotokoll für replizierte Echtzeitdatenbanken". Universität von Virginia. IEEE Echtzeit-Anwendungssymposium. Abgerufen 13. Dezember 2006. {{}}: Journal zitieren erfordert |journal= (Hilfe)CS1 Wartung: Mehrere Namen: Autorenliste (Link)
  8. ^ Lee, JuHnyoung (1994). "Parallelitätskontrollalgorithmen für Echtzeit-Datenbanksysteme". Diss. Univ. von Virginia. Abgerufen 13. Dezember 2006. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  9. ^ (Schweinefleisch)
  10. ^ a b Kang, K D., Sohn und J Stankovic. Angabe und Verwaltung der Qualität von Echtzeitdatendiensten. Universität von Virginia. IEEE TKDE, 2004.
  11. ^ Kao & Garcia-Molina 1994, S. 261–282.
  12. ^ a b Stankovic, John A., Marco Spuri, Krithi Ramamritham und Giorgio C. Buttazzo. Terminplanung für Echtzeitsysteme: EDF und verwandte Algorithmen. Springer, 1998.
  13. ^ (Ramamritham)
  14. ^ a b (O'Neil)
  15. ^ Lam, Kam-yiu und Tei-Wei Kuo. Echtzeit-Datenbanksysteme: Architektur und Techniken. Springer, 2001.

Weitere Lektüre