Deterministische Simulations tests in Rust: Ein Zustandsmaschinen-Ansatz

2025-08-05
Deterministische Simulations tests in Rust: Ein Zustandsmaschinen-Ansatz

Das Polar Signals-Team teilt seine Erfahrungen beim Aufbau einer neuen Rust-Datenbank mit einer Zustandsmaschinenarchitektur, die deterministische Simulationstests (DST) in den Vordergrund stellt. Im Gegensatz zu ihrer vorherigen Go-Datenbank, FrostDB, verzichtet die neue Datenbank auf die Steuerung des bestehenden Schedulers und verwendet stattdessen ein Zustandsmaschinenmodell, bei dem alle Kernkomponenten als einzel-gethreadte Zustandsmaschinen geschrieben werden, die über einen Message Bus kommunizieren. Dieser Ansatz bietet vollständige Kontrolle über Nebenläufigkeit, Zeit, Zufälligkeit und Fehlerinjektion, vereinfacht die DST-Implementierung erheblich und deckt zwei kritische Fehler auf. Obwohl dieser Ansatz zusätzlichen kognitiven Aufwand erfordert, führt er zu präziserem Denken über das Systemverhalten und zuverlässigeren Code.

Mehr lesen

Serverlose API S2 erzielt signifikante Performance-Verbesserungen und Kosteneinsparungen durch kontinuierliches Profiling

2025-02-14
Serverlose API S2 erzielt signifikante Performance-Verbesserungen und Kosteneinsparungen durch kontinuierliches Profiling

S2, eine serverlose API für das Streamen von Daten, hat durch die Nutzung von Polar Signals Cloud für kontinuierliches Profiling signifikante Performance-Verbesserungen und Kosteneinsparungen erzielt. Angesichts ineffizienter CPU-Auslastung, die die Benutzerkapazität begrenzte und die Betriebskosten erhöhte, nutzte S2 die Funktionen des kontinuierlichen Profilings von Polar Signals Cloud, insbesondere pprof.me und invertierte Call Stacks, um mehrere Performance-Engpässe zu identifizieren und zu beheben. Beispielsweise reduzierte eine einzige Codeänderung, die die Hardwarebeschleunigung auf Graviton über die sha2-Bibliothek ermöglichte, die CPU-Auslastung für die Berechnung von SHA256-Checksummen von 68,37 % auf 31,82 %, wodurch der Durchsatz effektiv verdoppelt wurde. Weitere Optimierungen umfassten Verbesserungen bei der Berechnung von CRC32C-Checksummen des AWS S3 Rust SDK und der Speicherzuweisung. Die flexible Preisgestaltung von Polar Signals Cloud erwies sich ebenfalls als entscheidend für die spezifischen Bedürfnisse von S2.

Mehr lesen