Was genau ist verteiltes Rechnen?
Distributed Computing ist eine von Natur aus parallele Sammlung von Verarbeitungselementen, die miteinander kommunizieren, um ein oder mehrere Probleme zu lösen. Diese Verarbeitungselemente sind ausreichend voneinander getrennt, so dass es nicht praktikabel ist, eine zuverlässige und zeitnahe Nachrichtenstruktur zwischen ihnen aufzubauen, so dass es unmöglich wird, eine globale Kenntnis des Systemzustands zu erhalten. Besondere Merkmale mit verteilten Systemen von Messaging sind , dass Nachrichten werden verloren gehen, werden verstümmelt erhalten, werden verzögert bekommen - Lösungen in diesem Bereich Rechnung zu nehmen. Bei verteilter Programmierung geht es also um den Umgang mit Netzwerken und Nachrichten, Parallelität und einen Mangel an globalen Informationen.
Die einfachste Methode, um die Probleme zu umgehen, besteht darin, ein einzelnes Verarbeitungselement als speziell, dh für eine bestimmte Information, maßgeblich zu kennzeichnen. Dann können die anderen Elemente entweder jedes Mal darauf zurückgreifen oder die Informationen zwischenspeichern und hoffen, dass sie nicht veraltet sind (da sie nicht damit rechnen können, über Änderungen informiert zu werden). Dies ist die klassische Client / Server-Architektur.
Bei Internet-Computing handelt es sich um verteiltes Computing, ohne jedoch steuern zu können, was die meisten verteilten Knoten tatsächlich tun.
Stellen mehrere parallele Threads, die versuchen, den Zugriff auf eine Ressource zu synchronisieren, ein Problem im Bereich des verteilten Rechnens dar?
Sie stellen eine mögliche Lösung dar , die beim Erstellen des Client / Server-Modells hilfreich ist, jedoch zu Lasten einer potenziell dramatischen Zunahme der Ressourcenkonflikte. Für das Lesen ist das keine große Sache (vorausgesetzt, es gibt genügend Hardware), aber für das Schreiben ist es in der Tat ein großes Problem.
Was Sie jedoch vermeiden möchten, sind verteilte Sperren. Das Fehlen einer zuverlässigen und zeitnahen Nachrichtenübermittlung erschwert verteilte Entscheidungsprotokolle, es sei denn, Sie verwenden ein ähnliches Protokoll wie das Paxos-Protokoll . Das grundlegende Problem beim verteilten Rechnen ist, dass "Nachrichten schlechte Sachen passieren". Relativ niedrige Protokolle, wie TCP, verringern die Probleme, aber Sie können immer noch schwer hängen bleiben.