LCM: Hochskalierende Capability-Systeme
Zusammenfassung der Projektergebnisse
Das übergeordnete Ziel des Projektes war es, festzustellen ob sehr große Systeme auf direkter Basis eines Capabilitysystems gebaut werden können. In einem solchen System sind die performante sowie skalierbare Delegation und Revokation von Capabilities von größter Bedeutung. Außerdem sollten die Schnittstellen des Capabilitysystems für die Anwendung mit angemessenem Aufwand sinnvoll nutzbar sein. Während des Projekts haben wir verschiedene Entwürfe und Implementierungen von Capabilitysystemen getestet. Wir betrachteten verteile Capabilitysysteme in Rechenzentrumsszenarien, sowie hochparallele Systeme mit geteiltem Speicher. Für verteilte Capabilitysysteme in Rechenzentren ist eine Delegation mit geringer Latenz sowie eine schnelle auf Invalidierung basierende Revokation die beste Lösung. Der von uns dafür entwickelte Revokationsmechanismus besteht aus zwei Phasen: der Invalidierung sowie der anschließenden Bereinigungsphase invalider Capabilities. Die Invalidierung ist eine schnelle Operation, welche lediglich auf einem Knoten ausgeführt werden muss – dem Ressourcenbesitzer. Die Bereinigungsphase ist vergleichbar mit einer verteilten Speicherbereinigung. Die Bereinigung ist nicht auf dem zeitkritischen Pfad und daher nicht relevant für die Systemlatenz. Nebst der Laufzeitanalyse haben wir ein Schema vorgestellt, welches einen Mittelweg zwischen Programmierbarkeit und einer skalierbaren Implementierung verteilter Capabilities darstellt – die Revokationsbäume. Revokationsbäume ermöglichen dem Programmierer Capabilities in revokierbare Teilmengen zu strukturieren. Dadurch erhält die Applikation ausreichend Flexibilität um detaillierte Zugriffsrechte abzubilden, während das zugrunde liegende Capabilitysystem effizient implementiert werden kann. Das daraus resultierende System namens FractOS sowie die Schnittstelle des Capabilitysystems wurden von uns auf einer Topkonferenz publiziert. Wir haben die Untersuchungen von Capabilitysystemen für hochparallele Systeme mit geteiltem Speicher begonnen, konnten sie jedoch im Laufe des Projekts nicht abschließen. Während der Untersuchung dieser Capabilitysysteme wurde klar, dass andere Komponenten eines mikrokernbasierten Systems ebenso wichtig für die Skalierbarkeit des Systems sind wie das Capabilitysystem an sich. Das betrifft die lokale Interprozesskommunikation auf einzelnen CPU-Kernen sowie skalierbare Serveranwendungen im Nutzermodus. Aufgrund dieses Mehraufwands befinden sich die Messungen derzeit noch in Arbeit und werden nach Abschluss veröffentlicht. Mit dem Capabilitysystem, welches FractOS zugrunde liegt, konnten wir belegen, dass Capabilitysysteme tauglich für Rechenzentrumsanwendungen einschließlich disaggregierter Szenarien sind. Darüber hinaus haben wir mit Serverless Computing eine praktische Anwendung identifiziert, die von einer feingranularen Zugriffskontrolle, wie von Capabilities zur Verfügung gestellt, profitieren kann.
Projektbezogene Publikationen (Auswahl)
-
Slashing the disaggregation tax in heterogeneous data centers with FractOS. Proceedings of the Seventeenth European Conference on Computer Systems, 352-367. ACM.
Vilanova, Lluís; Maudlej, Lina; Bergman, Shai; Miemietz, Till; Hille, Matthias; Asmussen, Nils; Roitzsch, Michael; Härtig, Hermann & Silberstein, Mark
