toplogo
Sign In

Beschleunigung von Microservices durch Umgehung des Netzwerks


Core Concepts
Traditionelle RPC-Kommunikation verursacht zunehmend hohe Kosten in Microservice-Architekturen. Stattdessen schlagen wir einen netzwerkfreien Ansatz vor, der Nachrichten über einen gemeinsamen Speicherbereich austauscht, um die Kommunikationskosten deutlich zu reduzieren.
Abstract

Die Studie untersucht die Leistungsüberkopfe von Remote Procedure Calls (RPCs) in Microservice-Architekturen und zeigt, dass die Kommunikationskosten oft die Kosten der eigentlichen Geschäftslogik übersteigen. Die Autoren argumentieren, dass punktuelle Optimierungen an einzelnen Komponenten des RPC-Stacks nicht ausreichen, um diese Probleme zu lösen.

Stattdessen schlagen sie einen disruptiven Ansatz namens "Notnets" vor, der RPC-Semantik durch Nutzung von gemeinsam genutzem Arbeitsspeicher implementiert. Dieser Ansatz umgeht die Probleme traditioneller verteilter gemeinsamer Speichersysteme, da er nur die eingeschränkten Anforderungen von RPC erfüllen muss und nicht die Komplexität von allgemeinen verteilten Speichersystemen.

Die Autoren präsentieren erste Machbarkeitsstudien, die zeigen, dass dieser Ansatz das Potenzial hat, die RPC-Latenz um eine Größenordnung zu verbessern, indem er den Netzwerkstapel, die Serialisierung und andere Komponenten des RPC-Stacks umgeht.

edit_icon

Customize Summary

edit_icon

Rewrite with AI

edit_icon

Generate Citations

translate_icon

Translate Source

visual_icon

Generate MindMap

visit_icon

Visit Source

Stats
Nur etwa 25% der CPU-Zyklen werden in der Deathstarbench-Anwendung für die eigentliche Geschäftslogik verwendet, der Rest geht für RPC-Overhead verloren. Der RPC-Overhead verteilt sich über die gesamte Anwendung, wobei der Zeitaufwand für den Kernel-Netzwerkstapel leicht dominiert.
Quotes
"Traditionelle Lösungen, die auf die Optimierung einzelner wahrgenommener Engpässe im RPC-Stack abzielen, werden wahrscheinlich nicht die gewünschten Ergebnisse liefern." "Wir müssen uns auf die Kommunikation selbst konzentrieren."

Key Insights Distilled From

by Pete... at arxiv.org 04-11-2024

https://arxiv.org/pdf/2404.06581.pdf
NotNets

Deeper Inquiries

Wie könnte ein Sicherheitsmodell für den gemeinsamen Speicherbereich aussehen, das die Isolation der Prozesse gewährleistet?

Um die Isolation der Prozesse in einem gemeinsamen Speicherbereich zu gewährleisten, könnte ein Sicherheitsmodell implementiert werden, das ähnlich wie ein Memory Management Unit (MMU) funktioniert. Dieses Modell würde sicherstellen, dass Prozesse innerhalb des gemeinsamen Speichers nur auf ihre eigenen Adressbereiche zugreifen können und nicht auf die Adressbereiche anderer Prozesse. Es müsste Mechanismen zur Adressraumisolierung bereitstellen, um sicherzustellen, dass Prozesse nicht direkt auf physischen Speicher zugreifen können, sondern nur über virtuelle Adressen, die vom Sicherheitsmodell in physikalische Adressen übersetzt werden. Durch die Implementierung eines solchen Sicherheitsmodells könnte die Integrität und Isolation der Prozesse im gemeinsamen Speicherbereich gewährleistet werden.

Wie lässt sich Lastausgleich und Dienstentdeckung in einem netzwerkfreien Ansatz effizient umsetzen?

In einem netzwerkfreien Ansatz zur Kommunikation, wie dem vorgeschlagenen NotNets-Modell, kann der Lastausgleich und die Dienstentdeckung effizient umgesetzt werden, indem die Peer-Auswahl basierend auf der Lastinformation erfolgt, die innerhalb des gemeinsamen Speicherbereichs gesammelt wird. Anstelle von traditionellen Methoden wie DNS-basierter Verteilung von Servern kann der Lastausgleich direkt innerhalb des gemeinsamen Speichers durchgeführt werden. Durch die Erweiterung der Funktionalität von gRPC's "serverless proxy" können Peers innerhalb des Speicherbereichs basierend auf der Lastinformation ausgewählt werden. Dies ermöglicht eine effiziente Verteilung der Arbeitslast und eine dynamische Anpassung an die Ressourcennutzung innerhalb des gemeinsamen Speicherbereichs.

Welche Auswirkungen hätte ein netzwerkfreier Ansatz auf die Entwicklung und den Betrieb von Microservice-Anwendungen?

Ein netzwerkfreier Ansatz wie NotNets hätte signifikante Auswirkungen auf die Entwicklung und den Betrieb von Microservice-Anwendungen. Durch die Umgehung des Netzwerks und die Nutzung eines gemeinsamen Speicherbereichs zur Kommunikation könnten viele der Overheads und Engpässe, die mit herkömmlichen RPC-Methoden verbunden sind, beseitigt werden. Dies würde zu erheblichen Leistungsverbesserungen führen, da die Latenzzeiten reduziert und die Effizienz der Kommunikation zwischen den Microservices erhöht werden. Darüber hinaus könnte ein netzwerkfreier Ansatz die Skalierbarkeit und Flexibilität von Microservice-Anwendungen verbessern, da die Prozesse innerhalb des gemeinsamen Speicherbereichs autonom agieren können, ohne auf komplexe Netzwerkinfrastruktur angewiesen zu sein. Insgesamt könnte ein netzwerkfreier Ansatz die Entwicklung und den Betrieb von Microservice-Anwendungen vereinfachen und deren Leistungsfähigkeit steigern.
0
star