-
TECHNISCHES GEBIET
-
Ausführungsformen der vorliegenden Erfindung beziehen sich auf Verringern der rechentechnischen Arbeitsbelastung zur Bewertung von Abfragen und insbesondere auf Verringern der rechentechnischen Arbeitsbelastung durch Nutzen von Informationen in Zonenzuordnungen, um bedingtes Beenden von Tabellenabtastungen zu regeln.
-
ERLÄUTERUNG DER VERWANDTEN TECHNIK
-
Suchen nach Informationen unter Verwendung einer Abfrage kann ein Durchsuchen einer umfangreichen Datenbanktabelle zur Folge haben. Informationen, die in einer umfangreichen Datenbanktabelle gespeichert sind, werden üblicherweise nicht in sortierter Form vorgehalten wegen der hohen rechentechnischen Kosten, die mit dem Sortieren und Umorganisieren verbunden sind. Indexieren, bei dem eine Gruppe von Datenwerten einer Gruppe von Datensätzen zugeordnet werden, die sich auf diese Datenwerte beziehen, kann verwendet werden, um die Wirkung des Speicherns der Daten in einer sortierten Reihenfolge bereitzustellen, Jedoch kann bei verteilten Datenspeichern, die umfangreiche Datenbanktabellen speichern, eine Gruppe von Datensätzen über mehrere Speicherplatten aufgeteilt sein, und ein Übertragen eines Teils des Index, der einen gegebenen Datenwert den Datensätzen zuordnet, die diesen Datenwert betreffen, kann einen zusätzlichen Netzwerk-Aufwand erfordern, der zu einer geringen Latenz und einer erhöhten rechentechnischen Arbeitsbelastung führt.
-
Wenn eine Abfragebewertung Abtasten einer umfangreichen Tabelle erfordert, können einige Systeme zum Verwalten von Datenspeichern Metadaten über jeden Bereich des Tabellenspeichers vorhalten.
-
In der
US-Patentschrift 8 572 091 wird offenbart, dass ein System, das einen skalierbaren Datenspeicherdienst realisiert, Tabellen in einem nichtrelationalen Datenspeicher im Auftrag von Dienst-Clients vorhalten kann. Siehe die Zusammenfassung,
1 bis
25, Spalte 1, Zeilen 5 bis 26, Spalte 45, Zeile 1 bis 67 und Ansprüche 1 bis 35.
-
Die
US-Patentschrift 8 296 306 bezieht sich auf einen Algorithmus, der lediglich k Datenelemente, die die größten (oder kleinsten) Schlüsselwerte enthalten (d. h., die Top-k-Ergebnisse), aus einer Datenmenge in einer Zeitspanne abruft, die zu der Größe der Datenmenge direkt proportional ist. Siehe die Zusammenfassung,
1 bis
2, Spalte 2, Zeilen 5 bis 67, Spalte 3, Zeilen 1 bis 67 und Ansprüche 1 bis 14.
-
In der
US-Patentschrift 8 239 404 wird eine Graph-Traversale beschrieben, die stark vernetzte Komponenten mit Eintritten, Ausstiegen und entsprechenden Kanten zum selben Zeitpunkt wirksam kennzeichnet. Eintritts- und Austrittsknoten können erkannt werden, indem jeder Knoten abgetastet wird, nachdem die stark vernetzten Komponenten gekennzeichnet wurden, ein Wiederaufgreifen dieser Knoten hat jedoch einen unerwünschten Aufwand zur Folge. Siehe die Zusammenfassung,
1 bis
4, Spalte 1, Zeilen 5 bis 67, Spalte 2, Zeilen 1 bis 5 und Ansprüche 1 bis 11.
-
In der
US-Patentschrift 8 204 873 wird ein Verfahren zum Optimieren eines Abfrageausdrucks in einer Datenbank-Steuerungsroutine eines Datenbank-Servers offenbart. Siehe die Zusammenfassung,
1 bis
20, Spalte 1, Zeilen 5 bis 43, Spalte 12, Zeilen 1 bis 67 und Ansprüche 1 bis 15.
-
In der
US-Patentschrift 8 010 766 werden ein Verfahren, ein Informationsverarbeitungssystem und ein computerlesbares Medium zum Verwalten von Tabellenabtastprozessen offenbart. Siehe die Zusammenfassung,
1 bis
10, Spalte 2, Zeilen 65 bis 67, Spalte 8, Zeilen 1 bis 67 und Ansprüche 1 bis 20.
-
In der
US-Patentschrift 6 154 740 werden ein System und ein Verfahren zum Anzeigen einer sortierten Liste auf einer Anzeigeeinheit und ein Computer offenbart, der das System oder das Verfahren beinhaltet. Siehe die Zusammenfassung,
1 bis
3, Spalte 1, Zeilen 5 bis 67, Spalte 2, Zeilen 1 bis 47 und Ansprüche 1 bis 20.
-
In der
US-Patentschrift 6 973 452 wird offenbart, dass ein umfangreicher Informationsraum in viele kleinere Informations-Speicherabschnitte unterteilt wird. Diese Speicherabschnitte werden mit statistischen Angaben über die Informationen, die sie enthalten, kommentiert. Wenn eine Suche nach Informationen eine Einschränkung enthält, die auf einem Wert beruht, kann der gewünschte Wertebereich mit den Wertebereichen aller Speicherabschnitte verglichen werden. Wenn der gewünschte Wertebereich außerhalb des Spektrums des Speicherabschnitts liegt, kann der Speicherabschnitt den gewünschten Wert nicht enthalten und muss bei der Suche nicht berücksichtigt werden.
-
In der US-Patentanmeldung 2013/0251235 wird ein System zum automatischen Verarbeiten und Sortieren von relevanten Dokumenten offenbart. Siehe die Zusammenfassung, 1 bis 5, Zeilen [0018] bis [0052], [0055] bis [0062] und Ansprüche 1 bis 38.
-
in der US-Patentanmeldung 2013/0046784 werden ein Verfahren und System zum Anpassen einer Folge von Symbolen an einen Regelsatz offenbart. Siehe die Zusammenfassung 1 bis 4, Zeilen [0005] bis [0007], [0044] bis [0050] und Ansprüche 1 bis 10.
-
Bei der US-Patentanmeldung 2012/0330954 kann ein System, das einen skalierbaren Datenspeicherdienst realisiert, Tabellen in einem nichtrelationalen Datenspeicher im Auftrag von Clients vorhalten. Siehe die Zusammenfassung, 1 bis 25, Zeilen [0001] bis [0003], [0170] bis [0178] und Ansprüche 1 bis 35.
-
In der US-Patentanmeldung 2012/0317128 werden ein Verfahren und eine Vorrichtung zum optimalen Verarbeiten von N Sortierungsanfragen bei einer Mehrbereichsabtastung offenbart, die enthalten: Zuweisen eines Puffers anhand einer ersten Anzahl von extrahierten Datensätzen, die in den Abfragen enthalten sind; Extrahieren erster Daten, die sich auf erste Attribute in einer ersten Liste beziehen, die in den Abfragen enthalten ist, und Speichern der extrahierten ersten Daten in dem Puffer; Extrahieren zweiter Daten, die sich auf die ersten Attribute beziehen, die nicht in der ersten Liste extrahiert wurden, die in den Abfragen enthalten sind; und Aktualisieren des Puffers, um den Abfragen zu entsprechen, indem die in dem Puffer gespeicherten Daten mit den zweiten Daten verglichen werden, wobei es sich bei den Abfragen um N Sortierungsabfragen bei einer Mehrbereichsabtastung für wenigstens einen Datensatz handelt, der anhand der ersten Attribute und der zweiten Attribute sortiert ist. Siehe die Zusammenfassung, 1 bis 7, Zeilen [0003] bis [0018], [0029] bis [0092] und Ansprüche 1 bis 20.
-
In der US-Patentanmeldung 2011/0082854 werden Verfahren und Systeme zur Abfrageoptimierung für ein Mehrmandanten-Datenbanksystem offenbart. Siehe die Zusammenfassung, 1 bis 9, Zeilen [0002] bis [0010], [0106] bis [0125] und Ansprüche 1 bis 45.
-
Weitere Dokumente, die von Interesse sind, sind nachfolgend aufgelistet: HERODOTOU et al.; ”A SQL-Tuning-Aware Query Optimizer”, Berichte der Stiftung VLDB, Bd. 3, Nr. 1, 13. bis 17. September 2010, Seiten 1 bis 12.
-
IP.COM et al.; ”Method And System of Restructuring Imperfect Loop Nest With Early Exits to Facilitate Locality Transformations”, IPCOM000232309D, Oktober 2013, Seiten 1 bis 7.
-
IP.COM et al.; ”System And Method For GROUP BY With IN-LIST Subquery Optimization”, IPCOM000229573D, 6. August 2013, Seiten 1 bis 6.
-
GRAEFE; ”Fast Loads and Fast Queries”, Springer-Verlag, Berlin, Heidelberg, DaWaK 2009, LNCS 5691, S. 111 bis 124.
-
KURZDARSTELLUNG
-
Gemäß einem ersten Aspekt wird ein durch einen Computer umgesetztes Verfahren zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen bereitgestellt, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben, wobei das durch einen Computer umgesetzte Verfahren aufweist: Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb der spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
-
Gemäß einem zweiten Aspekt wird ein System bereitgestellt, das aufweist: einen Arbeitsspeicher, der eine Mehrzahl von Speicherbereichen aufweist, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben; eine Netzwerk-Schnittstelle; und einen Prozessor, der eingerichtet ist zum: Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb der spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
-
Gemäß einem dritten Aspekt wird ein Computerprogrammprodukt bereitgestellt, um einem Benutzer Informationen bereitzustellen, das ein computerlesbares Speichermedium mit darin verkörpertem computerlesbaren Programmcode aufweist, wobei der computerlesbare Programmcode beim Ausführen durch einen Prozessor bewirkt, dass der Prozessor Folgendes ausführt: für eine Mehrzahl von Speicherbereichen im Arbeitsspeicher, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben, Sortieren der ersten Intervallwerte in eine Reihenfolge, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Speicherbereiche festlegt; Festlegen eines Ergebniswerts, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert außerhalb einer spezifizierten Anzahl von Ergebnissen liegt; und Untersuchen der sortierten ersten Intervallwerte und gegebenenfalls Abtasten entsprechender einzelner Speicherbereiche im Arbeitsspeicher nach der spezifizierten Anzahl von Ergebnissen in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs.
-
Bei weiteren Ausführungsformen können die hier offenbarten Techniken Sortieren der zweiten Intervallwerte beinhalten.
-
Gemäß einer Ausführungsform wird eine Lösung zum frühzeitigen Beenden von Tabellenabtastungen von ungenau geordneten und/oder gruppierten Objekten unter Verwendung von nahezu geordneten Zuordnungen bereitgestellt.
-
KURZBESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTEN
-
In den verschiedenen Figuren werden im Allgemeinen gleiche Bezugszeichen verwendet, um ähnliche Komponenten zu bezeichnen.
-
Ausführungsformen der vorliegenden Erfindung werden nachfolgend lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen:
-
1 eine Darstellung einer beispielhaften Datenverarbeitungsumgebung zum Verwenden bei einer Ausführungsform der vorliegenden Erfindung ist;
-
2A eine Darstellung eines Beispiels von Bereichen (Speicherabschnitten) eines Tabellenspeichers gemäß einer Ausführungsform der vorliegenden Erfindung ist;
-
2B eine Darstellung eines Beispiels von Metadaten, die Bereichen des Tabellenspeichers entsprechen, gemäß einer Ausführungsform der vorliegenden Erfindung ist;
-
3 ein Prozedur-Ablaufplan ist, der allgemein die Verwendung von Metadaten veranschaulicht, die einem Speicherbereich zugehörig sind, um zu ermitteln, ob der Speicherbereich abgetastet werden soll, gemäß einer Ausführungsform der vorliegenden Erfindung;
-
die 4A bis 4B ein spezifischerer Prozedur-Ablaufplan sind, der auf dem Ablaufplan von 3 beruht und die Weise veranschaulicht, wie Metadaten verwendet werden können, um bedingtes Beenden von Tabellenabtastungen gemäß einer Ausführungsform der vorliegenden Erfindung zu steuern;
-
5 ein weiterer Prozedur-Ablaufplan ist, der eine Weise veranschaulicht, wie Metadaten, die Speicherbereichen zugehörig sind, aktualisiert werden können, wenn Datensätze in Speicherbereichen gemäß einer Ausführungsform der vorliegenden Erfindung hinzugefügt oder gelöscht werden;
-
6 ein Beispiel eines Systems/einer Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung ist.
-
GENAUE BESCHREIBUNG
-
Datenspeicher-Abfragen können häufig eine Menge von Ergebniswerten sortieren und diese auf eine Teilmenge von Ergebniswerten beschränken. Typische Verfahren enthalten Abtasten von umfangreichen Datentabellen zum Finden von Ergebnissen in Reaktion auf eine Abfrage, Sortieren und/oder Zusammenführen der Ergebnisse und Verwerfen aller Ergebnisse außer beispielsweise einer Menge von Top-N-Ergebnissen, wobei N eine beliebige Ganzzahl, z. B. 50 ist.
-
Wenn eine umfangreiche Tabelle auf einer Platte gespeichert wird, kann sie möglicherweise so groß oder so fragmentiert sein, dass es zeitaufwändig wird, den Plattenkopf zum Durchsuchen der umfangreichen Tabelle zu vielen unterschiedlichen Plattenbereichen zu verschieben. Metadaten, die einem Bereich des Speichers entsprechen, können verwendet werden, um Tabellendaten zu kennzeichnen, die in dem Bereich des Speichers enthalten sind. Ein erster Intervallwert kann z. B. für jeden Bereich von Zeilen einen minimalen Datenwert für jede Spalte repräsentieren, und ein zweiter Intervallwert kann für jeden Bereich von Zeilen einen maximalen Datenwert für jede Spalte repräsentieren. Sowohl die ersten als auch die zweiten Intervallwerte repräsentieren Typen von Metadaten, die für zahlreiche Bereiche des Speichers festgelegt und (in Kombination mit zusätzlichen Typen von Informationen) außerdem als „Zonenzuordnungen” bezeichnet werden können. Die Verwendung von Zonenzuordnungen zum Kennzeichnen von bestimmten Datenbereichen in einem Speicherbereich gemäß Ausführungsform der vorliegenden Erfindung verringert die Platten-Abtastdauer und die rechentechnische Belastung. Es ist zu beachten, dass Minimalwerte und Maximalwerte der Zonenzuordnung möglicherweise konservativ sind. Mit anderen Worten, ein Minimalwert eines Eintrags der Zonenzuordnung kann möglicherweise kleiner sein als das aktuelle Minimum für den entsprechenden Speicherbereich von Daten (z. B. infolge des Löschens eines Datensatzes usw.), und ein Maximalwert eines Eintrags der Zonenzuordnung kann gleichfalls möglicherweise größer sein als das aktuelle Maximum für den entsprechenden Speicherbereich von Daten.
-
Bei Ausführungsformen der vorliegenden Erfindung werden Techniken zum Nutzen von Zonenzuordnungen bereitgestellt, um Abfragebewertungen beim Vorliegen einer spezifizierten Bedingung vorzeitig zu beenden. Durch Sortieren einer Liste von minimalen Datenwerten (die auch als erste Intervallwerte bezeichnet werden) von Zonenzuordnungen oder alternativ einer Liste von maximalen Datenwerten (die auch als zweite Intervallwerte bezeichnet werden) kann eine Tabellenabtastung möglicherweise beendet werden, z. B. das Lesen einer Tabelle unterbrochen werden, nachdem festgestellt wurde, dass alle Ergebnisse, die möglicherweise Teil einer Top-N-Sortierung sind, gefunden wurden. Daher können die hier offenbarten Techniken die rechentechnischen Anforderungen bei E/A-Operationen wie beispielsweise Lese/Schreib-Operationen vermindern. Bei bevorzugten Ausführungsformen werden die hier präsentierten Techniken bei Abfragen angewendet, die eine Top-N-Sortierung enthalten, d. h. eine Bedingung „ORDER BY”, der eine Bedingung „LIMIT” folgt.
-
In 1 ist eine beispielhafte Datenverarbeitungsumgebung zur Verwendung bei Ausführungsformen der vorliegenden Erfindung dargestellt. Die Umgebung enthält insbesondere ein oder mehrere Client- oder Endbenutzer-Systeme 100 und ein oder mehrere Server-Systeme 110 und 120. Das Host-Server-System 110 und der Informations-Server können voneinander entfernt angeordnet sein und über ein Netzwerk 130 Daten austauschen. Abfrage-Anforderungen, die vom Client-System 100 stammen, können zum Informations-Server 120 übertragen werden, um gespeicherte Daten in einer Datenbank-Speichereinheit 140 zu suchen. Das Netzwerk 130 kann durch eine beliebige Anzahl von geeigneten Datenübertragungsmedien umgesetzt werden (z. B. Weitbereichs-Netzwerk (WAN), Lokalbereichs-Netzwerk (LAN), Internet, Intranet usw.). Alternativ kann es sich bei den Server-Systemen 110 und 120 um lokale Systeme handeln, die über jedes geeignete lokale Datenübertragungsmedium Daten austauschen (z. B. Lokalbereichs-Netzwerk (LAN), festverdrahtete Verbindung, drahtlose Verbindung, Intranet usw.). Netzwerk-Schnittstelleneinheiten sind mit 112 und 122 gezeigt.
-
Client-Systeme 100 ermöglichen, dass Benutzer Dokumente (z. B. Dokumente für Dokument-Sammlungen, Dokumente zur Analyse usw.) an ein Informations-Server-System 120 zum Speichern in einer Datenbank-Speichereinheit übermitteln. Die hier erläuterten Dokumente (oder weitere Informationen) können einem vorhandenen Datenbank-Speicher als Speicherbereiche (die auch als Speicherabschnitte bezeichnet werden) hinzugefügt werden.
-
Eine Datenbank-Speichereinheit 140 kann Informationen zur Analyse speichern (z. B. Ergebnisse einer Suche nach Top-N-Ergebnissen usw.) und kann in jeder herkömmlichen oder anderen Datenbank oder Speichereinheit realisiert werden. Die Datenbank-Speichereinheit 140 kann lokal sein oder von dem Informations-Server 120 entfernt angeordnet sein und kann über jedes geeignete Datenübertragungsmedium (z. B. Lokalbereichs-Netzwerk (LAN), Weitbereichs-Netzwerk (WAN), Internet, festverdrahtete Verbindung, drahtlose Verbindung, Intranet usw.) Daten austauschen. Das Client-System 100 kann eine grafische Benutzeroberfläche (z. B. GUI usw.) oder eine andere Schnittstelle (z. B. Befehlsleitungs-Bestätigungen, Menü-Bildschirme usw.) darstellen, um Informationen von Benutzern anzufordern, die die gewünschten Dokumente und Analysen betreffen, und kann Berichte bereitstellen, die die Analyse von Ergebnissen enthalten (z. B. Textanalysen, Suchergebnisse, Profil-Bewertungszahlen usw.).
-
Eine Mehrzahl von Datenbank-Speichereinheiten 140 kann in einem Datenspeicher vorhanden sein. Ein Informations-Server 120 kann Informationen in der Datenbank-Speichereinheit 140 speichern und von dieser zum Host-Server 110 abrufen. Der Host-Server 110 empfängt Anforderungen von dem Client-System 100 und Antworten an das Client-System 100. Bei einer Ausführungsform kann der Raum des Arbeitsspeichers in der Datenbank-Speichereinheit 140 in mehrere Partitionen unterteilt sein, darunter eine primäre Partition zum Speichern von Benutzer-Informationen, eine Spiegel-Partition zum Speichern einer Sicherungskopie der primären Informationen, eine temporäre Partition zum Halten von Zwischenergebnissen für den Informations-Server 120 und eine Kern-Partition zum Halten von Informationen über das physische Layout von Informationen in der Datenbank-Speichereinheit 140.
-
In 2A wird eine Ausführungsform der vorliegenden Erfindung betrieben, indem ein umfangreicher Informationsraum 160 in mehrere kleinere Informationsbereiche 170 und 180 (die auch als „Speicherabschnitte” oder „Speicherbereiche” bezeichnet werden) unterteilt wird. Jeder Speicherabschnitt kann des Weiteren in mehrere aneinander grenzende Blöcke mit fester Größe oder Blöcke des Teil-Speicherabschnitts mit veränderlicher Größe unterteilt werden. Ein Vorteil der Verwendung von festen Größen besteht darin, dass bestimmte Berechnungen schneller und weniger komplex werden. Bei alternativen Ausführungsformen der Erfindung können feste Größen außerdem anhand der Größe oder anderer Charakteristiken der Gesamt-Datenbank dynamisch geändert werden. Veränderliche Blockgrößen können anhand beispielsweise eines Attribut-Typs dynamisch modifiziert werden. Wenn sich z. B. der minimale Datenwert (auch als erste Intervallwerte bezeichnet) und der maximale Datenwert (auch als zweite Intervallwerte bezeichnet) auf Zeitstempel-Daten beziehen, kann eine Größe des Speicherabschnitts verändert werden, so dass alle Daten für eine bestimmte Zeitperiode in einem Datenblock gespeichert werden. Bei einem Block handelt es sich um die kleinste Übertragungseinheit zwischen der Datenbank-Speichereinheit 140, die den vollständigen Informationsraum hält, und dem Informations-Server 120, der in der Lage ist, die Informationen zu untersuchen und zu manipulieren. Bei einer Ausführungsform kann ein Block eine Größe von 128 KByte haben, wobei andere Größen ebenfalls geeignet sind.
-
Bei einem Speicherabschnitt 170, 180 handelt es sich um eine zweckmäßige Einheit der Speicherzuweisung, so dass dann, wenn ein Informationsraum größer wird, sein Wachstum in Einheiten von Speicherabschnitten quantisiert ist. Während der Adressenraum in einem Speicherabschnitt durchgehend ist (d. h. keine Leerstellen), kann ein Informationsraum 160 nicht durchgängige Speicherabschnitte enthalten, da keine Forderung dahingehend besteht, dass eine spätere Zuweisung eines Speicherabschnitts einen Adressenbereich erzeugen sollte, der eine feste Beziehung zu dem Adressenbereich einer früheren Zuweisung aufweist.
-
In 2B werden bei einer Ausführungsform der vorliegenden Erfindung Speicherabschnitte mit statistischen Angaben (z. B. Metadaten) über die Informationen kommentiert, die in den Speicherabschnitten enthalten sind, und diese Informationen können als Einträge in einer nahezu geordneten Zuordnungstabelle oder Liste 200 gespeichert werden. Wie in 2B gezeigt besitzt eine nahezu geordnete Zuordnungstabelle 200 eine Struktur, die eine Tabellenkennung 210, einen Spaltenindex 220, einen minimalen Datenwert 230, einen maximalen Datenwert 240 und eine Speicherabschnitt-Kennung 250 aufweist. Mehrere Einträge von Metadaten sind bei 260(1) bis 260(N) gezeigt. Die Tabellenkennung 210 bezeichnet eindeutig einen Informationsraum, der beispielsweise einer relationalen Datenbanktabelle entsprechen kann. Bei einer Ausführungsform handelt es sich um einen numerischen 4-Byte-Wert, der eine relationalen Datenbanktabelle eindeutig kennzeichnet. Der Spaltenindex 220 kennzeichnet eindeutig eine bestimmte Klasse von Informationen in dem Informationsraum, der durch die Tabellenkennung 210 gekennzeichnet ist. Bei einer Ausführungsform handelt es sich bei dem Spaltenindex 220 um einen numerischen 2-Byte-Wert, der eine Spalte in der relationalen Tabelle bezeichnet, die durch die Tabellenkennung 210 gekennzeichnet ist. Bei einer weiteren Ausführungsform kann der Spaltenindexwert 220 der Reihenfolge entsprechen, in der Spalten in der relationalen Tabelle definiert werden.
-
Bei einer Ausführungsform der Erfindung kann es sich bei dem minimalen Datenwert 230 und dem maximalen Datenwert 240 um 8-Byte-Größen handeln, die verschiedene Typen von Datenwerten halten können, darunter Datumangaben, Uhrzeitangaben, Zeitangaben, ganzzahlige Werte usw. Die tatsächlichen Typen von Daten, die durch den minimalen Datenwert und den maximalen Datenwert gehalten werden, sind in der Definition der Spalte spezifiziert, die durch den Spaltenindex 220 bezeichnet wird. Bei einer Ausführungsform kann es sich bei der Speicherabschnitt-Kennung 250 möglicherweise um einen numerischen 2-Byte-Wert handeln, der einen bestimmten Speicherabschnitt in dem Informationsraum bezeichnet, der durch die Tabellenkennung 210 bezeichnet wird. Bei größeren Speicherpartitionen würden entweder 4-Byte-Speicherabschnitt-Kennungen oder größere Speicherabschnitte verwendet werden.
-
Der minimale Datenwert 230 und der maximale Datenwert 240 entsprechen den minimalen und maximalen Datenwerten für bestimmte Arten von Informationen in einem Speicherabschnitt. Wenn eine Abfragebewertung für Informationen eine Beschränkung enthält, die auf einem Wert beruht, kann der Wert mit den Metadaten verglichen werden, die dem Abschnitt zugehörig sind, z. B. der minimale Datenwert jedes Speicherabschnitts, um zu ermitteln, ob der Speicherabschnitt durchsucht werden sollte. Diese Techniken werden nachfolgend in Verbindung mit den 3 und 4 beschrieben.
-
Zonenzuordnungen nutzen üblicherweise einen kleinen Betrag des Plattenspeicherraums, können gemeinsam mit den entsprechenden Daten angeordnet sein, die sie beschreiben, führen einen geringen Betrag von rechentechnischer Latenz in das System ein und können ohne Erfahrungen in Bezug auf eine technisch anspruchsvolle Datenbank-Administration vorgehalten werden. Es ist zu beachten, dass das Konzept von Zonenzuordnungen nicht auf die speziellen Typen von Metadaten-Informationen beschränkt ist, die in 2 gezeigt sind. Zusätzliche Typen von Metadaten-Informationen, die zum Kennzeichnen des Bereichs des Speichers (Speicherabschnitt) verwendet werden, fallen selbstverständlich in den Umfang der hier offenbarten Ausführungsformen.
-
3 stellt einen allgemeinen Überblick über Ausführungsformen der vorliegenden Erfindung bereit. Die Operation 310 tastet eine Mehrzahl von Speicherbereichen im Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen ab, wobei jedem Speicherbereich ein Intervall zugehörig ist, das erste und zweite Intervallwerte enthält, die einen Wertebereich für Werte in diesem Speicherbereich angeben. In der Operation 320 werden erste Intervallwerte in einer Reihenfolge sortiert, wobei die Reihenfolge der ersten Intervallwerte eine Abtastreihenfolge für die Mehrzahl von Speicherbereichen festlegt, z. B. in aufsteigender oder absteigender Reihenfolge. In der Operation 330 wird ein Ergebniswert festgelegt, wobei es sich bei dem Ergebniswert um eine obere Grenze oder eine untere Grenze handelt oder der Ergebniswert liegt außerhalb der spezifizierten Anzahl von Ergebnissen. In der Operation 340 werden die sortierten ersten Intervallwerte untersucht, und in Reaktion auf Vergleichen des festgelegten Ergebniswerts mit dem ersten Intervallwert dieses Speicherbereichs werden entsprechende einzelne Speicherbereiche abgetastet.
-
In den 4A bis 4B ist ein beispielhafter Ablaufplan einer genaueren Reihe von Operationen gezeigt, die in dem Ablaufplan von 3 bereitgestellt werden. Es ist klar, dass die hier bereitgestellten Techniken alternative Reihenfolgen von einer oder mehreren Operationen umfassen können, die in den 4A bis 4B gezeigt sind. Beispielsweise können andere Reihenfolgen von Operationen auftreten, um dasselbe Ergebnis zu erreichen, und können durch die hier eingeschlossenen Techniken umfasst werden.
-
Ausführungsformen der vorliegenden Erfindung können auf Abfragen angewendet werden, die eine Top-N-Sortierung enthalten (z. B. über eine Bedingung „ORDER BY”, die mit einer Bedingung „LIMIT N” verknüpft ist). Top-N-Sortierungen nutzen einen Algorithmus zur partiellen Sortierung zum Sortieren eines Array von m Elementen, so dass die Top-N-Ergebnisse die kleinsten Werte von m Elementen, wenn sie sortiert sind, in aufsteigender Reihenfolge enthalten. Im Allgemeinen enthalten Top-N-Sortierungen eine Teilmenge von Elementen das Array von m Elementen, vorausgesetzt, dass die Anzahl von Elementen m größer ist als die Anzahl von Top-N-Elementen. Zwar sparen Algorithmen zum partiellen Sortieren einen Großteil des Aufwands ein, der dem Sortieren zugehörig ist, wenn lediglich beste Ergebnisse gewünscht sind, derartige Algorithmen reduzieren jedoch nicht die Arbeitsbelastung bei E/A-Operationen wie z. B. Lesen/Schreiben.
-
Ausführungsformen der vorliegenden Erfindung können außerdem auf Anfragen angewendet werden, die eine Operation Gruppenbildung enthalten, der eine Top-N-Sortierung folgt (z. B. über Bedingungen „GROUP BY”, „ORDER BY” und/oder „LIMIT N”, wobei die Reihenfolge durch eine beliebige Teilmenge der Gruppenbildungs-Spalten festgelegt wird), wenn die zusammengeführten Datenstrukturen wie bei einer Top-N-Sortierung vorgehalten werden.
-
Ausführungsformen der vorliegenden Erfindung können außerdem Ausführen einer Gruppenbildung unter Verwendung einer Datenstruktur mit Top-N-Sortierung umfassen, bei der die besten N Gruppen beibehalten werden. Eine Abfrage kann z. B. eine Operation Gruppenbildung an einer oder mehreren Spalten ausführen, z. B. „SELECT ... GROUP BY A, B”. Die Ergebnisse der Operation Gruppenbildung können sortiert werden, so dass die Sortierungsschlüssel eine Teilmenge der Gruppenbildungsschlüssel darstellen, z. B. „ORDER BY A”, „ORDER BY B” oder „ORDER BY A, B”. Die Ergebnisse können schließlich wie bei „LIMIT 10” eingeschränkt werden. (Neue Datensätze können gruppiert werden, indem eine vorhandene Gruppe gesucht wird, zu der sie gehören, oder indem eine neue Gruppe erzeugt wird). Gruppen können anhand eines oder mehrerer Sortierungsschlüssel gekennzeichnet werden (z. B. Übereinstimmung mit einem oder mehreren Sortierungsschlüsseln), und eine spezifizierte Anzahl von Ergebnissen weist verschiedene Gruppen auf (beispielsweise wird es sich im Allgemeinen bei einer spezifizierten Anzahl von Ergebnissen um eine spezifizierte Anzahl von verschiedenen Gruppen handeln.) Ähnlich wie bei einer Top-N-Sortierung ohne Operation „GROUP BY” kann ein Abtasten von Speicherbereichen in Fällen vermieden werden, bei denen bei einer aufsteigenden Sortierung ein Minimalwert eines Speicherbereichs einen aktuellen ungünstigsten Gruppenbildungsschlüssel in der Top-N-Datenstruktur übersteigt, oder bei einer absteigenden Sortierung, bei der ein Maximalwert eines Speicherbereichs kleiner ist als ein aktueller ungünstigster Gruppenbildungsschlüssel in der Datenstruktur mit Top-N-Sortierung.
-
Es ist außerdem klar, dass Zonenzuordnungen nicht auf einen einzelnen ersten Intervallwert oder einen einzelnen zweiten Intervallwert beschränkt sein sollen, sondern mehrere Intervalle enthalten können, von denen jedes einem Minimalwert und einem Maximalwert für einen bestimmten Typ von Daten entspricht.
-
In 4A wird in der Operation 410 eine Abfrage-Anforderung empfangen. In der Operation 420 wird ermittelt, ob gegebenenfalls Metadaten (z. B. eine Zonenzuordnung) für jeden Speicherbereich erzeugt wurden und aktuell sind. In der Operation 425 werden Zonenzuordnungen erzeugt/aktualisiert, falls nicht bereits vorhanden. In der Operation 430 werden Speicherbereiche/Speicherabschnitte, die für die Abfrage relevant sind (abgetastet werden sollen) festgelegt, und es wird eine Liste gebildet/erzeugt, die Metadaten enthält, die diese relevanten Speicherbereiche kennzeichnen. In der Operation 440 kann diese Liste von Bereichen vor dem Ausführen von E/A-Operationen unter Verwendung der Spalte, bei der es sich um den primären Sortierungsschlüssel für die Top-N-Sortierung handelt, in aufsteigender oder absteigender Reihenfolge sortiert werden. Wenn beispielsweise beim Erzeugen einer Liste von Speicherbereichen, die zu verarbeiten sind, bekannt ist, dass ein Speicherbereich Datensätze mit Spaltenwerten zwischen 100 und 200 enthält (wie z. B. in Metadaten der Zonenzuordnung angegeben), kann dann, wenn eine Abfrage mit Bereichswerten bewertet wird, die außerhalb des bekannten Bereichs liegen (z. B. eine Abfrage mit einem Wert von 500), bei der Bewertung der gesamte Speicherbereich vom Abtasten ausgeschlossen werden. Wie hier erläutert werden in Zonenzuordnungen beispielsweise für jeden Bereich von Zeilen ein minimaler Datenwert und ein maximaler Datenwert für jede Spalte gespeichert. Daher wird durch die Reihenfolge der Zonenzuordnungsdaten in der sortierten Liste die Reihenfolge der Tabellenabtastung festgelegt. Die in dem Informationsraum enthaltenen Daten müssen in Bezug auf die Sortierungsspalte nicht geordnet, teilweise geordnet oder selektiert sein.
-
Wenn bei einer Top-N-Sortierung kleine Werte bevorzugt sind (z. B. eine aufsteigende Sortierung), kann die Liste von Speicherbereichen nach minimalen Datenwerten sortiert sein (d. h. erste Intervallwerte), und Bereiche ohne kleine Werte werden an das Ende der Liste verschoben. Wenn bei einer Top-N-Sortierung große Werte bevorzugt sind (z. B. eine absteigende Sortierung), kann die Liste von Speicherbereichen nach maximalen Datenwerten sortiert sein (d. h. zweite Intervallwerte), und Bereiche ohne große Werte werden an das Ende der Liste verschoben
-
Bei der Operation 450 von 4B (Fortsetzung der Operation 440 von 4A) wird ein Speicherbereich ausgewählt, der dem ersten Eintrag in der sortierten Liste entspricht. Bei der Operation 455 wird ein ausgewählter Speicherbereich auf der Grundlage einer Abfrage verarbeitet. Bei der Operation 460 wird ein Ergebniswert x oder ungünstigster Wert x (wenn angenommen wird, dass wenigstens N Ergebnisse vorhanden sind) der Werte in der Top-N-Sortierung festgelegt. Zur Vereinfachung wird angemerkt, dass bei diesem Schritt angenommen wird, dass beim Verarbeiten eines einzelnen Speicherbereichs die N besten Ergebnisse um wenigstens N Werte erweitert werden. Wenn das nicht der Fall ist, werden zusätzliche Speicherbereiche verarbeitet, bis diese Bedingung erfüllt ist. Bei der Operation 462 wird ein minimaler Datenwert eines Bereichs, min(R1) eines ersten Eintrags der sortierten Liste festgelegt. Die Operation 462 stellt einen Bedingungsausdruck zum Vergleichen eines Ergebniswerts x mit dem minimalen Datenwert eines Speicherbereichs bereit. Wenn beim Verarbeiten einer Top-N-Sortierung der N-te Wert x ist (ein aktueller „ungünstigster” Wert), müssen Bereiche, die einen minimalen Datenwert enthalten, der größer ist als x, (bei einer aufsteigenden Sortierung) nicht abgetastet werden. Wenn diese Bedingung nicht erfüllt ist, wird bei der Operation 470 der nächste Eintrag der sortierten Liste ausgewählt. Bei der Operation 475 wird der Speicherbereich auf der Grundlage der Abfrage verarbeitet. Bei der Operation 480 wird der ungünstigste Wert x aktualisiert. Diese Reihe von Operationen wird wiederholt, bis die spezifizierte Bedingung erfüllt ist. Wenn diese Bedingung erfüllt ist, gibt es keine zusätzlichen Werte, die mit den Top-N-Ergebnissen überlappen. Wenn der N-te Wert einer Top-N-Suche x ist und der minimale Datenwert für einen Bereich min(R1) größer ist als der Wert von x, kann der gesamte Speicherbereich verworfen werden.
-
Nachdem ein Speicherbereich R1 gefunden wurde, so dass der minimale Datenwert von R1 größer ist als der ungünstigste Wert x einer Top-N-Sortierung, werden darüber hinaus durch Sortieren der Liste von ausgewählten Speicherbereichen nach minimalen Datenwerten alle nachfolgenden Bereiche R2, R3 usw. ebenfalls minimale Datenwerte enthalten, die größer als x sind. Folglich kann das Abtasten frühzeitig beendet und das Lesen von Daten unterbrochen werden, wie nachfolgend unter Bezugnahme auf Gleichung 1 und in der Operation 465 gezeigt wird. Wenn min(R1) ≥ x, (Gl. 1) dann min(R2) ≥ min(R1) ≥ x
-
Bei einem Speicherbereich mit einem minimalen Datenwert, der x übersteigt, gibt es keine Ergebnisse innerhalb der Top-N-Ergebnisse, und deswegen kann der gesamte Speicherbereich verworfen werden, da er nicht in die Suche eingeschlossen werden muss. Nachdem ein Speicherbereich in der Liste verworfen wurde, können darüber hinaus alle nachfolgenden Speicherbereiche in der Liste verworfen werden (vorausgesetzt, dass die Liste von Speicherbereichen sortiert wurde). In vielen Fällen wird das ein frühzeitiges Beenden einer Tabellenabtastung ermöglichen, wenn ein Punkt erreicht wird, an dem keiner der verbleibenden Bereiche möglicherweise einen Wert hält, der eine Top-N-Sortierung übersteht. Für kleine Werte N sind die hier präsentierten Techniken wirkungsvoll beim Vermindern des E/A-Aufwands, der minimal erforderlich ist, um eine Anfrage zu beantworten, was einen erheblichen Einfluss auf die Leistungsfähigkeit hat.
-
Es ist zu beachten, dass bei Fällen, bei denen mehrere Sortierungsschlüssel vorhanden sind, der oben genannte Vergleich (z. B. Gl. 1) gilt – ein Eintrag der Zonenzuordnung mit einem Wert x kann nicht automatisch verworfen werden, da ein Sortierungsschlüssel mit geringerer Priorität (z. B. ein zweiter Sortierungsschlüssel) festlegen kann, dass der Eintrag eingeschlossen werden soll. Jedoch bei Fällen, bei denen ein einzelner Sortierungsschlüssel verwendet wird, kann das Vergleichen verbessert werden, wie durch Gl. 2 gezeigt ist. Wenn min(R1) ≥ x, (Gl. 2) dann min(R2) ≥ min(R1) ≥ x
-
Das aktuelle ungünstigste Ergebnis kann außerdem als „Ergebniswert” bezeichnet werden. Zwar repräsentiert 4 den Ergebniswert als einen aktuellen ungünstigsten Wert einer Top-N-Sortierung, d. h. eine obere Grenze bei einer aufsteigenden Sortierung und eine untere Grenze bei einer absteigenden Sortierung, es ist jedoch zu beachten, dass Ausführungsformen der vorliegenden Erfindung außerdem möglicherweise Werte außerhalb der spezifizierten Anzahl von Ergebnissen enthalten. Zu Werten, die außerhalb der spezifizierten Anzahl von Ergebnissen liegen, gehören Werte, die größer sind als die aktuelle obere Grenze, sowie Werte, die kleiner sind als die aktuelle untere Grenze. Bei einer oberen Grenze handelt es sich um einen Maximalwert der Werte der Top-N-Sortierung. Bei einer unteren Grenze handelt es sich um einen Minimalwert der Werte der Top-N-Sortierung.
-
Außerdem ist zu beachten, dass der Ergebniswert im Allgemeinen mit der Zeit besser wird, wenn das Abtasten fortschreitet (wenn es sich z. B. bei dem Ergebniswert um einen minimalen Wert handelt, kann sich der Ergebniswert weiter vermindern, wenn das Abtasten fortschreitet, und ein neuer minimaler Wert wird gekennzeichnet). Ein Verbessern von Ergebniswerten ermöglicht, dass noch mehr Daten ausgelassen werden, wenn das Abtasten fortschreitet, und deswegen wird die rechentechnische Arbeitsbelastung von E/A-Operationen weiter verringert.
-
Ausführungsformen der vorliegenden Erfindung stellen eine Rückmeldung von einem Algorithmus der Top-N-Sortierung zu der E/A-Schicht bereit, um die rechentechnische Arbeitsbelastung zu vermindern. Die oben beschriebene Entscheidung für ein frühzeitiges Beenden ermöglicht, dass zugehörige E/A-Operationen angehalten werden, und stellt daher eine Form der Rückmeldung an die E/A-Schicht bereit. Ein Sortieren der Liste von Einträgen der Zonenzuordnung stellt eine Optimierung bereit, sobald festgelegt wurde, ein frühzeitiges Beenden einer Top-N-Sortierung Elementen auszuführen, wobei eine zugehörige rechentechnische Arbeitsbelastung von E/A-Operationen vermieden werden kann.
-
Wenn bei einer Abfrage ein umfangreicher Informationsraum nach Werten in einem spezifizierten Bereich abgetastet wird, wird somit gemäß Ausführungsformen der vorliegenden Erfindung eine Liste von Zonenzuordnungsdaten, die jedem Speicherbereich zugehörig ist, erzeugt, sortiert und untersucht, um zu ermitteln, ob die Speicherbereiche möglicherweise Werte in dem spezifizierten Bereich der Top-N-Sortierung enthalten könnte. Lediglich Bereiche, die Werte in dem spezifizierten Bereich enthalten, werden abgetastet; andere Bereiche müssen nicht berücksichtigt werden. Die hier beschriebenen Techniken ermöglichen ein wesentliches Verringern des Zeitumfangs, der zum Abtasten eines umfangreichen Informationsraums erforderlich ist.
-
Die hier dargestellten Techniken ermöglichen außerdem eine Vorhersage einer bestmöglichen frühen Schätzung von Top-N-Ergebnissen. Wenn z. B. ein erster Speicherbereich einen entsprechenden Eintrag der Zonenzuordnung enthält, der einen Wertebereich von 1 bis 5 angibt, und ein zweiter Speicherbereich einen entsprechenden Eintrag der Zonenzuordnung enthält, der einen Wertebereich von 3 bis 20 angibt, fallen relevante Daten möglicherweise mit höherer Wahrscheinlichkeit in den ersten Bereich (wenn angenommen wird, dass eine aufsteigende Sortierung verwendet wird), und dieser Bereich würde zuerst gelesen werden. Demzufolge ermöglicht das Nutzen von sortierten Metadaten, dass relevante Ergebnisse optimal gekennzeichnet werden.
-
Bei anderen Ausführungsformen können die hier dargestellten Techniken verwendet werden, um ein optimales frühzeitiges Beenden einer Tabellenabtastung zu erreichen, wenn es sich bei einer nachgelagerten Operation um eine Operation Grand Aggregate Min(Column) oder Max(Column) handelt; dabei handelt es sich um einen entarteten Fall einer Top-N-Sortierung, wobei der Grenzwert 1 ist und die ausgewählte Spalte der Sortierungsschlüssel ist.
-
In diesem Fall kann die Operation zum teilweisen Sortieren zu einer Operation entarten oder durch eine Operation ersetzt werden, die lediglich einen Datensatz aufbewahrt, z. B. den Datensatz mit dem minimalen Wert des Sortierungsschlüssels oder den Datensatz mit dem maximalen Wert des Sortierungsschlüssels. Bei einer Operation, die den Datensatz mit dem minimalen Wert des Sortierungsschlüssels aufbewahrt, kann jeder Speicherbereich übersprungen werden, dessen minimaler Wert, der durch den entsprechenden Eintrag der Zonenzuordnung angegeben wird, höher ist als der Sortierungsschlüssel. (Alternativ kann dann, wenn bei einer Operation der Datensatz mit dem maximalen Wert des Sortierungsschlüssels aufbewahrt wird, jeder Speicherbereich übersprungen werden, dessen maximaler Wert kleiner ist als der Sortierungsschlüssel.) Diese Optimierung kann selbst dann wirkungsvoll sein, wenn die Daten teilweise oder vollständig ungeordnet sind und sehr wenige Speicherbereiche bei dem anfänglichen Prozess des Bewertens der Zonenzuordnungen ausgeschlossen werden. Wenn ein einziger Sortierungsschlüssel vorhanden ist, kann die Operation beendet werden, sobald ein Wert gefunden wurde, der kleiner ist als der minimale Wert jedes verbleibenden Eintrags der Zonenzuordnung oder gleich diesem ist. Wenn mehrere Sortierungsschlüssel vorhanden sind, kann die Operation beendet werden, sobald ein Wert gefunden wurde, der kleiner ist als der minimale Wert jedes verbleibenden Eintrags der Zonenzuordnung.
-
Bei nochmals weiteren Ausführungsformen gibt es bei schwach organisierten Spalten, bei denen min(region)–max(region) nahezu den gesamten Bereich der Spalte bei jedem Bereich darstellt, trotzdem eine bestimmte Varianz bei den Endpunkten. Daher erscheinen die wenigen kleinsten Werte wahrscheinlich lediglich in wenigen Speicherbereichen. Diese Speicherbereiche werden zuerst abgetastet, um einen hinreichend kleinen „Ergebniswert” auszuwählen, der die verbleibenden Speicherbereiche ausschließt. Daher liefert die hier bereitgestellte Technik für einen ausreichend kleinen Wert N bei einer Top-N-Sortierung ein gutes Ergebnis.
-
Ausführungsformen der vorliegenden Erfindung sind nicht auf einen bestimmten Typ von Datenverarbeitungsumgebung beschränkt. Ausführungsformen der vorliegenden Erfindung können beispielsweise auf ein System angewendet werden, das mehrere Computer oder Prozesse aufweist, von denen jeder eine Top-N-Sortierung unabhängig ausführen kann, um eine lokale Liste von Top-N-Ergebnissen zu erzeugen. Alle unabhängigen Listen können zusammengelegt werden, so dass die Top-N-Ergebnisse nach dem Zusammenlegen aufbewahrt werden. Somit kann in diesem Zusammenhang jeder Computer oder Prozess eine Liste von Top-N-Ergebnissen unabhängig erzeugen, und sie können unabhängig voneinander eine Top-N-Sortierung frühzeitig beenden.
-
Alternativ werden Ausführungsformen der vorliegenden Erfindung außerdem auf Systeme angewendet, bei denen mehrere Computer zusammenwirken können, um einen globalen Ergebniswert vorzuhalten, wobei der globale Ergebniswert einem aktuellen globalen ungünstigsten Ergebniswert (z. B. einem globalen minimalen Wert oder einem globalen maximalen Wert) von einer Mehrzahl von Top-N-Sortierungen entspricht, die durch eine Mehrzahl von Computern ausgeführt werden. Demzufolge kann jeder Computer seine entsprechende Abtastliste reduzieren und/oder festlegen, um auf der Grundlage dieses globalen Ergebniswerts eine Top-N-Sortierung frühzeitig zu beenden. Es sollte außerdem beachtet werden, dass es beim Abtasten einer kleinen Anzahl von zusätzlichen Speicherbereichen keine nennenswerte Einbuße bei der Leistungsfähigkeit gibt. Deswegen kann der globale Ergebniswert asynchron berechnet werden oder kann unregelmäßig aktualisiert werden, so dass diese Optimierung keinen Synchronisationspunkt in das System einführt oder diesen erfordert.
-
5 ist ein verallgemeinerter Ablaufplan einer Prozedur zum Aktualisieren von Einträgen der Zonenzuordnung infolge des Hinzufügens oder Löschens von Datensätzen in einem Speicherbereich. Wenn beim Löschen eines Datensatzes aus einem Informationsraum dieser Datensatz einen Spaltenwert enthält, der den minimalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt, kann der neue minimale Wert für diese Spalte in diesem Speicherabschnitt tatsächlich größer sein als der in dem Eintrag der Zonenzuordnung aufgezeichnete minimale Wert. In ähnlicher Weise kann, wenn dieser Datensatz einen Spaltenwert enthält, der den maximalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt, der neue maximale Wert für diese Spalte in diesem Speicherabschnitt tatsächlich kleiner sein als der in dem Eintrag der Zonenzuordnung aufgezeichnete maximale Wert. Mit anderen Worten, ein Löschen eines Datensatzes kann die Wirkung des Einengens des Wertebereichs für Spalten in einem Speicherabschnitt haben. In ähnlicher Weise kann ein Erzeugen eines Datensatzes die Wirkung des Erweiterns des Wertebereichs für Spalten in einem Speicherabschnitt haben.
-
In der Operation 510 von 5 wird ein Datensatz hinzugefügt oder gelöscht, In der Operation 520 wird ermittelt, ob der hinzugefügte oder gelöschte Datensatz einen Spaltenwert enthält, der den minimalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt, und/oder ob der hinzugefügte oder gelöschte Datensatz einen Spaltenwert enthält, der den maximalen Wert für alle Spalten in dem Speicherabschnitt des Datensatzes darstellt. In der Operation 530 wird die Zonenzuordnung aktualisiert, um den neuen minimalen Wert wiederzugeben (der beispielsweise zumindest auf den Wert abgesenkt ist, der in dem hinzugefügten Datensatz spezifiziert ist, oder angehoben ist, um den niedrigsten Wert in dem Speicherbereich wiederzugeben) und/oder um den neuen maximalen Wert wiederzugeben (der beispielsweise zumindest auf den Wert angehoben ist, der in dem hinzugefügten Datensatz spezifiziert ist, oder abgesenkt ist, um den höchsten Wert in dem Speicherbereich wiederzugeben). Bei weiteren Ausführungsformen müssen Zonenzuordnungen möglicherweise nicht aktualisiert werden, damit sie Datensatz-Löschvorgänge wiedergeben, da Zonenzuordnungen im Allgemeinen in einer herkömmlichen Weise verwendet werden.
-
In 6 kann eine beispielhafte Ausführungsform eines Informationsservers 120 eine Netzwerk-Schnittstelle 112, einen Prozessor 620 und einer Arbeitsspeicher 630 aufweisen. Die Netzwerk-Schnittstelle 112 ist so eingerichtet, dass sie beispielsweise einen Netzwerk-Datenaustausch über ein Netzwerk 130 ermöglicht, um einen Datenaustausch zwischen dem Informationsserver 120 und dem Host-Server 110 bezüglich Abfrage-Anforderungen vom Client-System 100 zu erleichtern wie in 1 gezeigt.
-
Der Prozessor 620 kann durch einen oder mehrere Mikroprozessoren oder Mikrosteuereinheiten verkörpert werden und führt computerlesbare Programmbefehle aus, die im Arbeitsspeicher 630 gespeichert sind, um die Operationen auszuführen, die oben in Verbindung mit den 1 bis 5 beschrieben wurden.
-
Der Arbeitsspeicher 630 kann computerlesbare Speichermedien aufweisen, die mit Software codiert sind, die computerlesbare Programmbefehle aufweist, und wenn die Software durch den Prozessor 620 ausgeführt wird, ist der Prozessor funktionsmäßig in der Lage, die Operationen auszuführen, die hier in Verbindung mit der Erzeugung von Zonenzuordnungen, Sortierung und Bewertungs-Logikschaltung 365 beschrieben wurden.
-
Server-Systeme 110 und 120 und Client-Systeme 100 können durch alle herkömmlichen oder andere Computersysteme umgesetzt sein, die vorzugsweise mit einer Anzeige oder einem Monitor, einer Basis (die z. B. wenigstens einen Prozessor, einen oder mehrere Arbeitsspeicher und/oder interne oder externe Netzwerk-Schnittstellen oder Datenübertragungseinheiten (z. B. Modem, Netzwerk-Karten usw.) enthält) und einer handelsüblichen oder kundenspezifischen Software (z. B. Server/Datenübertragungs-Software, Modul, Browser/Schnittstellen-Software usw.) ausgestattet sind.
-
Alternativ können ein oder mehrere Client-Systeme 100 Dokumente analysieren, wenn sie als eigenständige Einheit betrieben werden. Bei einer eigenständigen Betriebsart speichert das Client-System die Daten oder hat auf diese Zugriff (z. B. Datenbank-Speichereinheit 140) und enthält Module, um Abfrage-Anforderungen an den Host-Server 110 zu formulieren und/oder zu senden. Die grafische Benutzeroberfläche (z. B. GUI usw.) oder andere Schnittstellen (z. B. Befehlsleitungs-Bestätigungen, Menü-Bildschirme usw.) fordern Informationen von einem entsprechenden Benutzer an, die die gewünschten Dokumente und Analysen betreffen, und können Berichte bereitstellen, die Analyseergebnisse enthalten.
-
Ein Modul kann ein oder mehrere Module oder Einheiten zum Ausführen der zahlreichen Funktionen von Ausführungsformen der vorliegenden Erfindung enthalten, die hier beschrieben wurden. Die verschiedenen Module (z. B. Logik-Modul 635 usw.) können in jeder Kombination von einer beliebigen Anzahl von Software/und/oder Hardware-Modulen oder Einheiten umgesetzt werden und können sich im Arbeitsspeicher 630 des Informationsservers 120 für ein Ausführen durch den Prozessor 620 befinden.
-
Es ist klar, dass die oben beschriebenen und in den Zeichnungen dargestellten Ausführungsformen lediglich einige wenige von den vielen Arten zum Umsetzen von Ausführungsformen repräsentieren.
-
Die Umgebung von Ausführungsformen der vorliegenden Erfindung kann jede Anzahl von Computer- oder anderen Datenverarbeitungssystemen (z. B. Client- oder Endbenutzer-Systeme, Server-Systeme usw.) und Datenbanken oder andere Datenablagen enthalten, die in jeder gewünschten Weise angeordnet sind, wobei die Ausführungsformen der vorliegenden Erfindung bei jedem gewünschten Typ von Datenverarbeitungsumgebung (z. B. Cloud-Datenverarbeitung, Client-Server, Netzwerk-Datenverarbeitung, Mainframe, eigenständige Systeme usw.) angewendet werden können. Die Computer- oder anderen Datenverarbeitungssysteme, die bei Ausführungsformen der vorliegenden Erfindung eingesetzt werden, können durch jede Anzahl von beliebigen Personal Computern oder anderen Typen von Computer- oder Datenverarbeitungssystemen (z. B. Desktop, Laptop, PDA, Mobileinheiten usw.) umgesetzt werden und können jedes handelsübliche Betriebssystem und jede Kombination aus handelsüblicher und kundenspezifischer Software enthalten (z. B. Browser-Software, Datenübertragungs-Software, Server-Software, Profil-Erzeugungsmodul, Profil-Vergleichsmodul usw.). Diese Systeme können alle Typen von Monitoren und Eingabe-Einheiten (z. B. Tastatur, Maus, Spracherkennung usw.) zum Eingeben und/oder Betrachten von Informationen enthalten.
-
Es sollte klar sein, dass die Software (z. B. Logik 635) der Ausführungsformen der vorliegenden Erfindung in jeder gewünschten Computersprache umgesetzt werden kann und durch einen Fachmann auf dem Gebiet der Computertechnik anhand von Funktionsbeschreibungen entwickelt werden könnte, die in der Spezifikation und den in den Zeichnungen dargestellten Ablaufplänen enthalten sind. Des Weiteren beziehen sich hier erfolgte Bezugnahmen von Software, die verschiedene Funktionen ausführt, im Allgemeinen auf Computersysteme oder Prozessoren, die diese Funktionen softwaregesteuert ausführen. Die Computersysteme von Ausführungsformen der vorliegenden Erfindung können alternativ durch jeden Typ von Hardware und/oder anderer Verarbeitungs-Schaltungsanordnungen umgesetzt sein.
-
Die verschiedenen Funktionen der Computer- und anderer Verarbeitungssysteme können in beliebiger Weise auf jede Anzahl von Software- und/oder Hardware-Modulen oder Einheiten, Verarbeitungs- oder Computersysteme und/oder Schaltungsanordnungen verteilt sein, wobei die Computer- oder Verarbeitungssysteme lokal oder voneinander entfernt angeordnet sein können und über jedes geeignete Datenübertragungsmedium (z. B. LAN, WAN, Intranet, Internet, Festverdrahtung, Modem-Verbindung, drahtlos usw.) Daten austauschen können. Beispielsweise können die Funktionen von Ausführungsformen der vorliegenden Erfindung in beliebiger Weise unter den verschiedenen Endbenutzer/Client- und Server-Systemen und/oder allen anderen dazwischenliegenden Verarbeitungseinheiten verteilt sein. Die Software und die oben beschriebenen und in den Ablaufplänen dargestellten Algorithmen können so modifiziert werden, dass die hier beschriebenen Funktionen erreicht werden. Außerdem können die Funktionen in den Ablaufplänen oder der Beschreibung in einer beliebigen Reihenfolge ausgeführt werden, die eine gewünschte Operation realisiert.
-
Die Software von Ausführungsformen der vorliegenden Erfindung (z. B. Software, die der Logik 365 entspricht, usw.) kann auf einem nichtflüchtigen durch einen Computer nutzbaren Medium (z. B. magnetische oder optische Medien, magnetooptische Medien, Computer-Disketten, CD-ROM, DVD, Speichereinheiten usw.) einer stationären oder tragbaren Vorrichtung oder Einheit eines Programmprodukts zur Verwendung mit eigenständigen Systemen oder Systemen, die durch ein Netzwerk oder andere Datenverarbeitungsmedien verbunden sind, verfügbar sein.
-
Das Datenübertragungsnetzwerk kann durch eine beliebige Anzahl von Datenübertragungsnetzwerken beliebigen Typs umgesetzt sein (z. B. LAN, WAN, Internet, Intranet, VPN usw.). Die Computer- oder anderen Verarbeitungssysteme von Ausführungsformen der vorliegenden Erfindung können alle herkömmlichen oder andere Datenübertragungseinheiten enthalten, um über das Netzwerk über alle herkömmlichen oder andere Protokolle Daten auszutauschen. Der Computer oder andere Verarbeitungssysteme können jeden Verbindungstyp (z. B. leitungsgestützt, drahtlos usw.) zum Zugreifen auf das Netzwerk nutzen. Lokale Datenübertragungsmedien können durch alle geeigneten Datenübertragungsmedien (z. B. Lokalbereichsnetzwerk (LAN), Festverdrahtung, Drahtlosverbindung, Intranet usw.) umgesetzt werden.
-
Das System kann eine beliebige Anzahl aller herkömmlichen oder anderer Datenbanken, Datenspeicher oder Speicherstrukturen (z. B. Dateien, Datenbanken, Datenstrukturen, Daten- oder andere Ablagen usw.) zum Speichern von Informationen nutzen, (z. B. Datenbank-Speichereinheit 140, Zonenzuordnungen, Top-N-Ergebnisse usw.). Das Datenbank-System kann durch eine beliebige Anzahl aller herkömmlichen oder anderer Datenbanken, Datenspeicher oder Speicherstrukturen (z. B. Dateien, Datenbanken, Datenstrukturen, Daten- oder andere Ablagen usw.) zum Speichern von Informationen umgesetzt werden, (z. B. Datenbank-Speichereinheit 140, Zonenzuordnungen, Top-N-Ergebnisse usw.). Das Datenbank-System kann in den Server- und/oder Client-Systemen enthalten oder mit diesen verbunden sein. Das Datenbank-System und/oder Speicherstrukturen können sich entfernt von oder lokal zu den Computer- oder anderen Verarbeitungssystemen befinden und können alle gewünschten Daten speichern.
-
Ausführungsformen der vorliegenden Erfindung können eine beliebige Anzahl von Benutzeroberflächen jedes Typs (z. B. Grafische Benutzeroberfläche (GUI), Befehlsleitung, Bestätigung usw.) zum Erhalten oder Bereitstellen von Informationen nutzen (z. B. Abfrage-Anforderungen vom Client 100, Top-N-Ergebnisse usw.), wobei die Schnittstelle beliebige Informationen enthalten kann, die in beliebiger Weise angeordnet sind. Die Schnittstelle kann eine beliebige Anzahl aller Typen von Eingabe- oder Betätigungsmechanismen enthalten (z. B. Schaltflächen, Symbole, Felder, Kästchen, Verweise usw.), die an beliebigen Positionen angeordnet sind, um Informationen einzugeben oder anzuzeigen und gewünschte Aktionen über alle geeigneten Eingabeeinheiten auszulösen (z. B. Maus, Tastatur usw.). Die Schnittstellen-Bildschirme können jede geeignete Betätigungseinrichtung (z. B. Links, Tabs usw.) zum beliebigen Navigieren zwischen den Bildschirmen enthalten.
-
Der Bericht kann alle Informationen enthalten, die in beliebiger Weise angeordnet sind, und kann auf der Grundlage von Regeln oder anderen Kriterien konfigurierbar sein, um gewünschte Informationen einem Benutzer bereitzustellen (z. B. Textanalysen, Profil-Bewertungszahlen, demografische Informationen, die den Autor des Dokuments betreffen, usw.).
-
Die Ausführungsformen der vorliegenden Erfindung sind nicht auf die speziellen Aufgaben oder Algorithmen beschränkt, die oben beschrieben wurden.
-
Die hier verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll die Erfindung nicht einschränken. Die hier verwendeten Singular-Formen „ein” und „der/die/das” sollen ebenso die Plural-Formen einschließen, falls im Kontext nicht ausdrücklich anders angegeben. Es ist ferner klar, dass die Ausdrücke „weist auf”, „aufweisend”, „enthält”, „enthaltend”, „hat”, „mit” und dergleichen bei Verwendung in dieser Spezifikation das Vorhandensein von festgestellten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifiziert, jedoch nicht das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder deren Gruppen ausschließt.
-
Die entsprechenden Strukturen, Materialien, Wirkungen und Ersetzungen aller Mittel oder Schritte plus Funktionselemente in den nachfolgenden Ansprüchen sollen gegebenenfalls alle Strukturen, Materialien oder Wirkungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen, die speziell beansprucht werden, enthalten. Die Beschreibung der vorliegenden Erfindung wurde für Zwecke der Erläuterung und Beschreibung dargestellt, es ist jedoch nicht vorgesehen, dass sie in der offenbarten Form für die Erfindung erschöpfend oder einschränkend sein soll. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgeist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um Nichtfachleute zu befähigen, die Erfindung zu verstehen, da verschiedene Ausführungsformen mit zahlreichen Modifikationen für die vorgesehene praktische Verwendung geeignet sind.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Erläuterung dargestellt, es ist jedoch nicht vorgesehen, dass sie für die offenbarten Ausführungsformen erschöpfend oder einschränkend sein sollen. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgeist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber Technologien, die am Markt vorhanden sind, am besten zu erläutern oder um andere Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein oder mehrere computerlesbare Speichermedien enthalten, auf denen sich computerlesbare Programmbefehle befinden, um zu bewirken, dass ein Prozessor Aspekte der vorliegenden Erfindung ausführt.
-
Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, eine Diskette (Floppy Disk), eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch eine Leitung übertragen werden.
-
Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu betreffenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z. B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der betreffenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
-
Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, die in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache ”C” oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
-
Aspekte der vorliegen den Erfindung werden hier unter Bezugnahme auf Ablaufplan Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
-
Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
-
Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Funktionsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
-
Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es ist außerdem zu beachten, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.