The Cost of Garbage Collection for State Machine Replication
Zhiying Liang, Vahab Jabrayilov, Aleksey Charapko, Abutalib Aghayev

TL;DR
This paper systematically compares the performance and resource costs of implementing a state machine replication system in languages with garbage collection versus manual memory management, revealing implications for cloud system design.
Contribution
It provides the first systematic study of GC overhead in SMR-based cloud systems by implementing and benchmarking a MultiPaxos key-value store in C++, Java, Rust, and Go.
Findings
GC overhead impacts latency and resource usage
Manual memory management can reduce cloud costs
Performance varies significantly across languages
Abstract
State Machine Replication (SMR) protocols form the backbone of many distributed systems. Enterprises and startups increasingly build their distributed systems on the cloud due to its many advantages, such as scalability and cost-effectiveness. One of the first technical questions companies face when building a system on the cloud is which programming language to use. Among many factors that go into this decision is whether to use a language with garbage collection (GC), such as Java or Go, or a language with manual memory management, such as C++ or Rust. Today, companies predominantly prefer languages with GC, like Go, Kotlin, or even Python, due to ease of development; however, there is no free lunch: GC costs resources (memory and CPU) and performance (long tail latencies due to GC pauses). While there have been anecdotal reports of reduced cloud cost and improved tail latencies when…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNuclear and radioactivity studies
