Distributed systems are complex systems that offer highly scalable and reliable services. With that complexity comes the difficulty of developing and testing such systems as they are highly non-deterministic. Approaches like model checking are used to verify models of distributed systems formally, but the insufficient correlation between model and implementation, as well as the state-explosion problem, makes this approach sub-optimal. In real-world systems, transient sequences of events could result in failures, but these events can be both difficult to detect and reproduce. This thesis addresses the problem of testing distributed systems by proposing a way to test these systems through a discrete event simulator that is integrated into the distributed runtime Kompact. The simulator can run on real message-passing implementations and provides precise control over a simulation through what is referred to as fine-grained sequences of events. The flexibility of the simulator is demonstrated by using it to simulate and reproduce faulty behavior in the Raft consensus algorithm. Through state monitoring, the state transitions of such a simulation allow us to analyze and suspect the occurrence of liveness issues. / Distribuerade system är komplexa system som erbjuder mycket skalbara och pålitliga tjänster. Med den komplexiteten kommer svårigheten att utveckla och testa sådana system eftersom de är mycket icke-deterministiska. Tillvägagångssätt som model kontroll används för att verifiera modeller av distribuerade system formellt, men otillräcklig korrelation mellan modell och implementering, liksom tillståndsexplosionsproblem, gör detta tillvägagångssätt suboptimalt. I den verkliga världen system, kan övergående händelseförlopp resultera i fel, men dessa händelser kan vara både svåra att upptäcka och reproducera. Denna avhandling tar upp problemet med att testa distribuerade system genom att föreslå ett sätt att testa dessa system genom en diskret händelsesimulator som är integrerad i den distribuerade runtime Kompact. Simulatorn kan köras på riktiga meddelande-passerar implementeringar och ger exakt kontroll över en simulering genom vad som kallas finkorniga händelseförlopp. Flexibiliteten hos simulatorn demonstreras genom att använda den för att simulera och reproducera felaktiga beteende i konsensusalgoritm Raft. Genom statlig övervakning, staten övergångar av en sådan simulering gör att vi kan analysera och misstänka händelsen av livlighetsfrågor.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-321952 |
Date | January 2022 |
Creators | Mallo Bakken, Johan |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2022:810 |
Page generated in 0.0025 seconds