-
Die Erfindung betrifft Verfahren zur empfängerseitigen Pufferbehandlung für ein synchrones Datenübertragungsverfahren.
-
Stand der Technik
-
RDMA(RDMA, remote direct memory access)-Datentransportverfahren, bei denen z. B. PC-Erweiterungskarten oder andere Schnittstellen verwendet werden, die über eine RDMA-Hardware entfernte Speicherbereiche lesen und schreiben können, sind Stand der Technik.
-
Bei einem RDMA-Datentransportverfahren werden Daten ohne zusätzliche Kopie vom Speicher des Quellrechners in den Speicher des Zielrechners kopiert. Der Kopiervorgang wird dabei von der Hardware einer Netzwerkkarte ausgeführt. Dadurch wird ein sehr schneller Datentransfer ermöglicht, ohne hierfür CPU-Belastungen in Quell- und Zielrechner beanspruchen zu müssen.
-
1 zeigt ein erstes prinzipielles Ablaufdiagramm zur Veranschaulichung des Ablaufs einer Datenübertragung bei einem bekannten Verfahren.
-
Die einzelnen Subprozeduren des bekannten Verfahrens sind gemäß den eingekreisten Ziffern 1S, 2S, 3S 4S bzw. 1R, 2R...5R in 1 nummeriert.
-
Bei dem bekannten Verfahren wird seitens eines ersten Senders S zunächst eine erste Sender-Subprozedur 1S durchgeführt, bei der eine erste Sendeverarbeitungssteuerung VS einen ersten Informationspuffer IP mit der Speicheradresse von einem ersten Sendepuffer füllt und den ersten Informationspuffer IP zu einem ersten Empfänger E sendet.
-
In einer auf die erste Sender-Subprozedur 1S folgenden zweiten Sender-Subprozedur 2S fügt die erste Sendeverarbeitungssteuerung VS den ersten Informationspuffer IP in eine erste Empfangswarteschlange WE ein.
-
Nach der zweiten Sender-Subprozedur 2S erfolgt in einer dritten Sender-Subprozedur 3S das Empfangen einer ersten Transaktions-Vollständigkeits-(Transaction-complete)-Nachricht durch die erste Sendeverarbeitungssteuerung VS.
-
Schließlich teilt die erste Sendeverarbeitungssteuerung VS in einer vierten Sender-Subprozedur 4S der blockierten Sendefunktion mit, dass die Sendeverarbeitung beendet ist.
-
Bei dem bekannten Verfahren wird seitens eines ersten Empfängers E zunächst eine erste Empfänger-Subprozedur 1R durchgeführt, bei der eine erste Empfangsverarbeitungssteuerung VE den ersten Informationspuffer IP in die erste Empfangswarteschlange WE einfügt.
-
In einer auf die erste Empfänger-Subprozedur 1R folgenden zweiten Empfänger-Subprozedur 2R nimmt die erste Empfangsverarbeitungssteuerung VE den empfangenen ersten Informationspuffer IP aus der ersten Empfangswarteschlange WE.
-
Nach der zweiten Empfänger-Subprozedur 2R erfolgt eine dritte Empfänger-Subprozedur 3R, die die Durchführung einer RDMA-Operation zur empfangenen ersten fernen Adresse umfasst.
-
Nach der Durchführung der RDMA-Operation sendet die erste Empfangsverarbeitungssteuerung VE in einer vierten Empfänger-Subprozedur 4R einen ersten Antwort-Informationspuffer mit der ersten Transaktions-Vollständigkeits-Nachricht.
-
Nach der vierten Empfänger-Subprozedur 4R teilt die erste Empfangsverarbeitungssteuerung VE der blockierten Empfangsfunktion mit, dass die Empfangsverarbeitung beendet ist (Empfänger-Subprozedur 5R).
-
Bei synchronem Datentransfer zwischen Sende- und Empfangs-Applikation besteht ein Problem beim direkten Datentransfer in den Speicher der Empfangs-Applikation nun dahingehend, dass die Empfangs-Applikation in einem der Sendegeschwindigkeit der Sende-Applikation auf dem Quellrechner entsprechenden Takt Empfangspuffer an der Treiberschnittstelle der Netzwerkkarten-Hardware zur Verfügung stellen muss. Andernfalls wird die Transaktion mit einem Fern-Speicher-(Remote Memory)-Fehler abgebrochen. Bei bekannten Infiniband Implementierungen wird der Fern-Speicher-Fehler als so schwerwiegend bewertet, dass bei dessen Auftreten ein Neuaufbau der Verbindung erforderlich ist.
-
Bekannte Implementierungen hängen an die Datenstruktur zur Kapselung eines Sende/Empfangs-Datenpuffers die Datenstruktur eines Informationspuffers (Info-Buffer) an. Die Nutzer-Anwendung führt ein Empfangs-Kommando aus, übergibt dabei die Empfangspuffer-Datenstruktur, die der Informationspuffer für den Empfang der RDMA-Adresse anhängt. Dieser Informationspuffer wird in die Empfangswarteschlange der Treiberschnittstelle übergeben, um den Informationspuffer mit der Fern-Speicheradresse zu empfangen. Dies bedeutet, dass die synchron arbeitende Empfangssoftware nur in der Lage ist, einen Informationspuffer zu empfangen, wenn die darüber liegende Nutzer-Anwendung einen blockierenden Empfangs-Funktionsaufruf getätigt hat. Ist der Sender schneller, sendet er einen Informationspuffer bevor der Empfänger den Empfangs-Funktionsaufruf abgesetzt hat, bricht beispielsweise bei Infiniband-Technologien die Infiniband-Sende-Operation mit einem Fehler ab und die Infiniband-Kommunikationsschnittstelle (IB-Verbs) wird in einen Fehlerzustand versetzt, der nur mit einer Neuinitialisierung beseitigt werden kann.
-
Zahlreiche Nutzer-Anwendungen verwenden für den Netzwerkdatentransport synchrone Sende- und Empfangsfunktionen, wie sie aus der Socket-Schnittstelle bekannt sind. Ist die Empfangsapplikation langsamer als die Sendeapplikation, d. h. benötigt die Empfangsapplikation an der Netzwerktransport Schnittstelle länger einen neuen Empfangspuffer zur Verfügung zu stellen, als die Sendeapplikation den nächsten Sendbefehl abzusetzen vermag, kommt es zu dem angesprochene Problem, da es hier anders als bei einem Socket keinen zentralen Empfangspuffer gibt.
-
Erfindung
-
Die Aufgabe der vorliegenden Erfindung besteht nun darin, eine Abhilfemaßnahme für die zuvor beschriebenen Problematiken vorzuschlagen.
-
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausführungsformen der Erfindung sind in weiteren Ansprüchen definiert.
-
Bei dem Verfahren zur empfängerseitigen Pufferbehandlung für ein synchrones Datenübertragungsverfahren zwischen einem ersten Speicher, der einem Quellrechner zugeordnet ist, und einem zweiten Speicher, der einem Zielrechner zugeordnet ist werden Informationspaket-Empfangspuffer in einer Komplettierungswarteschlange und eine mit einem Ereignis-Mechanismus versehene Empfangspuffer-Warteschlange bereitgestellt. Nach dem Entnehmen eines empfangenen Informationspaketes aus der Komplettierungswarteschlange wird ein Prüfschritt durchgeführt, bei dem durch eine zweite Empfangsverarbeitungssteuerung geprüft wird, ob ein blockierender Empfangsfunktionsaufruf existiert. Dabei wartet das Verfahren bei negativem Prüfergebnis auf die Verfügungsstellung eines Empfangs-Puffers durch einen zukünftigen blockierenden Empfangsfunktionsaufruf bis eine vorgegebene Zeit verstrichen ist. Bei positivem Prüfergebnis oder bei Auftreten des blockierenden Empfangsfunktionsaufrufes innerhalb der Wartezeit wird das Verfahren mit einem entfernten direkten Speicherzugriff (RDMA remote direct memory access), fortgesetzt.
-
Bei einer Ausführungsvariante des erfindungsgemäßen Verfahrens wird nach dem Empfang einer Zeitablaufnachricht durch die zweite Empfangsverarbeitungssteuerung anstatt einer Transaktions-Vollständigkeits-Nachricht (Transaction-complete-Nachricht) eine Transaktions-Fehlernachricht zum Quellrechner gesendet. Dabei wird die Zeitablaufnachricht automatisch erzeugt, wenn nach Ablauf der Wartezeit noch kein Empfangs-Puffer zur Verfügung steht.
-
Die Erfindung betrifft ferner ein System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff. Im System sind die Hardware und/oder die Software und/oder Steuermittel und/oder Programmmittel zur Durchführung des Verfahrens nach einem der vorangehenden Ansprüche vorgesehen.
-
Die Erfindung hat den Vorteil, dass bei Beibehaltung der Vorteile bekannter Lösungen (kein zusätzliches Kopieren der Daten) des RDMA-Datentransfers, eine Sender/Empfänger Synchronisation ermöglicht wird. In einer Situation, in der Empfangspuffer dauerhaft nicht vorhanden sind, wird eine für den Sender auswertbare Fehlermeldung erzeugt, die im Gegensatz zu den bekannten Lösungen keinen Abbruch der bestehenden Verbindung zur Folge hat. Das erfindungsgemäße Verfahren eignet sich in besonderer Weise speziell zur Lösung bekannter Probleme, die bei synchronen Datentransfers zwischen Sende- und Empfangsapplikation auftreten.
-
Zeichnungen
-
Im Folgenden werden weitere Vorteile und Einzelheiten der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
-
1 ein erstes prinzipielles Ablaufdiagramm zur Veranschaulichung des Ablaufs einer Datenübertragung bei einem bekannten Verfahren; und
-
2 ein zweites prinzipielles Ablaufdiagramm zur Veranschaulichung des Ablaufs einer Datenübertragung beim erfindungsgemäßen Verfahren.
-
Beispielhaft aufzufassende Ausführungsformen der Erfindung
-
2 zeigt ein rein prinzipielles zweites Ablaufdiagramm zur Veranschaulichung des Ablaufs einer Datenübertragung beim erfindungsgemäßen Verfahren.
-
Eine Netzwerksoftware verwendet eigene Informationspuffer, die sie in entsprechender Anzahl (> 1) bereits nach der eigenen Initialisierung an die zweite Empfangswarteschlange der Treiberschnittstelle übergibt. Hierdurch wird erreicht, dass stets Informationspuffer in der Empfangswarteschlange der Treiberschnittstelle für den Empfang eines Informations-Paketes (englisch „info-packet”) von einem zweiten Sender S' oder einem zweiten Empfänger E' zur Verfügung stehen. Selbst wenn die Nutzer-Anwendung noch keinen Empfangs-Funktionsaufruf getätigt hat, also noch kein Datenpuffer für den Empfangsprozess zur Verfügung steht, kann der zweite Informationspuffer vom zweiten Sender empfangen werden.
-
Zusätzlich entkoppelt eine weitere Empfangspufferwarteschlange RBQ, die mit einem Ereignismechanismus ausgestattet ist, den Empfangs-Funktionsaufruf der Nutzer-Anwendung von dem Empfang des Informations-Paketes von Seiten des zweiten Senders S'.
-
Ferner werden empfängerseitig Informationspaket-Empfangspuffer in einer Komplettierungswarteschlange CQ' bereitgestellt.
-
Nach Empfang des Informations-Paketes wird am Ereignismechanismus eine festzulegende Zeit auf einen Empfangspuffer gewartet. Ist der in der Empfangspufferwarteschlange RBQ vorhanden oder wird der Empfangspuffer innerhalb der Wartezeit in die Empfangspufferwarteschlange RBQ gestellt, wird der RDMA-Prozess gestartet und die Transaktion wie zuvor beschrieben beendet. Wird in der Wartezeit kein Empfangspuffer in der Empfangspufferwarteschlange RBQ bereitgestellt, sendet die Software einen zweiten Informationspuffer IP' mit einer entsprechenden Fehlermeldung an den zweiten Sender S'. Da diese Fehlermeldung jetzt in der Netzwerksoftwareschicht und nicht wie bisher in der Transportprotokollschicht auftritt, kann der Fehler ohne eine Neuinitialisierung der Kommunikationsschnittstelle behandelt werden.
-
Das nachfolgend im Detail erläuterte erfindungsgemäße Verfahren dient zur empfängerseitigen Pufferbehandlung für ein synchrones Datenübertragungsverfahren zwischen einem ersten Speicher SM, der einem Quellrechner S' zugeordnet ist, und einem zweiten Speicher RM, der einem Zielrechner E' zugeordnet ist. Die einzelnen Unterprozeduren des erfindungsgemäßen Verfahrens sind gemäß den eingekreisten Ziffern 1S', 2S'...6S' bzw. 1R', 2R'...6R' in 2 nummeriert. Zusätzliche Informationen zu einem verbesserten RDMA-Process und insbesondere zu der Verwendung von entsprechenden Informationspuffern sind in einer früheren Patentanmeldung der Anmelderin mit der internen Referenznummer PD090018 enthalten. Darauf wird ergänzend in Hinblick auf die Offenbarung dieser Erfindung ausdrücklich Bezug genommen.
-
Zunächst werden bei dem erfindungsgemäßen Verfahren, wie zuvor bereits angesprochen, nach einer Sendersoftware-Initialisierung wenigstens zwei zweite Informationspuffer IP' in eine zweite Empfangswarteschlange WE' eingefügt.
-
Ferner wird bei dem erfindungsgemäßen Verfahren seitens des zweiten Senders S' ein Informationspuffer-Handhaber IH bereitgestellt.
-
Bei dem erfindungsgemäßen Verfahren wird senderseitig eine erste Sender-Unterprozedur 1S' durchgeführt, bei der ein zweiter Informations-Puffer IP' vom Informationspuffer-Handhaber IH bezogen wird und der zweite Informationspuffer IP' mit der Speicheradresse vom zweiten Sendepuffer gefüllt wird.
-
In einer auf die erste Sender-Unterprozedur 1S' folgenden zweiten Sender-Unterprozedur 2S' sendet eine zweite Sendeverarbeitungssteuerung VS' den zweiten Informationspuffer IP' zu einem zweiten Empfänger E'.
-
Nach der zweiten Sender-Unterprozedur 2S' erfolgt in einer dritten Sender-Unterprozedur 3S' das Leeren des zweiten Informationspuffers IP' und dessen Rückgabe von der zweiten Sendeverarbeitungssteuerung VS' an den Informationspuffer-Handhaber IH.
-
In einer vierten Sender-Unterprozedur 4S' wird eine zweite Transaktions-Vollständigkeits-(Transaction-complete)-Nachricht durch die zweite Sendeverarbeitungssteuerung VS' empfangen.
-
Eine fünfte Sender-Unterprozedur 5S' umfasst einen Einfügeschritt, bei dem der zweite Informationspuffer IP' in die zweite Empfangswarteschlange WE' eingefügt wird.
-
Schließlich teilt die zweite Sendeverarbeitungssteuerung VS' in einer sechsten Sender-Unterprozedur 6S' der blockierten Sendefunktion mit, dass die Sendeverarbeitung beendet ist.
-
Bei dem erfindungsgemäßen Verfahren wird seitens des zweiten Empfängers E' zunächst eine erste Empfänger-Unterprozedur 1R' durchgeführt, bei der der empfangene zweite Informations-Puffer IP' aus der Komplettierungswarteschlange CQ' entnommen wird.
-
In einer auf die erste Empfänger-Unterprozedur 1R' folgenden zweiten Empfänger-Unterprozedur 2R' in Form eines Prüfschritts wird durch eine zweite Empfangsverarbeitungssteuerung VE' geprüft, ob ein blockierender Empfangsfunktionsaufruf existiert.
-
Bei positivem Prüfergebnis des Prüfschritts wird sofort nach dem Empfang des zweiten Informations-Puffers IP' ein Empfangs-Puffer bezogen, sofern ein solcher Empfangs-Puffer zu diesem Zeitpunkt bereits zur Verfügung steht. Andernfalls wird auf einen Empfangs-Puffer gewartet, bis eine vorgegebene Wartezeit von der Zeit an, von der ein der zweite Informations-Puffer IP' empfangen wurde, verstrichen ist.
-
Sobald ein Empfangs-Puffer zur Verfügung steht, folgt das Ausführen einer RDMA-Operation (dritte Empfänger-Unterprozedur 3R').
-
Eine vierte Empfänger-Unterprozedur 4R' betrifft das Senden eines zweiten Antwort-Informationspuffers. In der vierten Empfänger-Unterprozedur 4R' sendet die Empfangsverarbeitungssteuerung VE' nach dem erfolgreichen Ausführen der zweiten RDMA-Operation oder nach dem Empfang einer Zeitablaufnachricht durch die zweite Empfangsverarbeitungssteuerung VE' eine zweite Transaktions-Vollständigkeits-Nachricht (Transaction-complete-Nachricht) zum zweiten Sender S'.
-
In einer fünften Empfänger-Unterprozedur 5R' fügt die zweite Empfangsverarbeitungssteuerung VE' den zweiten Informationspuffer IP' in die zweite Empfangs-Warteschlange WE' ein.
-
In einer sechsten Empfänger-Unterprozedur 6R' teilt die zweite Empfangsverarbeitungssteuerung VE' der blockierten Empfangsfunktion mit, dass die Empfangsverarbeitung beendet ist.