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