Skip to main content
Ctrl K

styx-uncoordinated-artifact

Code underlying the master thesis: “Uncoordinated Checkpointing in Stateful Transactional Systems: Decoupling Fault Tolerance from Coordination in Styx”

1
contributor

Description

This archive contains the source code, experiment configurations, raw measurements, aggregated results, analysis scripts, tests, documentation, and generated figures supporting the MSc research project Uncoordinated Checkpointing in Stateful Transactional Systems: Decoupling Fault Tolerance from Coordination in Styx. Styx is a distributed runtime for stateful transactional functions. The research investigates whether checkpoint persistence can be decentralized from the coordinator to individual workers without harming steady-state performance, transactional consistency, or recovery.

The evaluation uses a synthetic YCSB+T transactional workload adapted for Styx, consisting of three suites:

  1. Scalability and checkpointing: Coordinated and uncoordinated checkpoint persistence were compared using 2, 4, 6, 8, 10, and 12 workers. Saturation rates were

identified using a binary search over offered transaction rates, with a median P95 latency below 1,000 ms defining a sustainable rate. Additional sweeps varied

epoch size, checkpoint cadence, checkpoint-trigger strategy, and Zipfian contention.

  1. Compaction and recovery: The experiments measured steady-state compaction overhead, state-restoration time, checkpoint-file count, and restoration-time components such as object listing, fetching, deserialization, and merging. Compaction intervals from every checkpoint to every 1,000 checkpoints were evaluated, together with no-compaction and recovery-only compaction configurations. Failures were injected by terminating one of four workers with docker kill/SIGKILL, simulating an immediate crash without graceful shutdown.

  2. Partition rebalancing: The experiments compared recovery with and without partition redistribution after a failed worker restarted. Rebalancing overhead and

post-recovery throughput and latency were measured at 40%, 50%, 70%, and 85% of the four-worker saturation rate.

The included README files identify the files and commands required to regenerate each analysis. Reproduction requires Python 3.10, Docker, Docker Compose, and the dependencies listed in the included requirements files.

Keywords
Programming languages
  • Other 92%
  • JSON 7%
  • Markdown 1%
License
  • Apache-2.0
</>Source code
4TU.
Packages

Contributors

JH
Justin Haan

Member of community

4TU