喵ID:yl6Wf8免责声明

The Cost of Garbage Collection for State Machine Replication

状态机复制的垃圾收集成本

基本信息

DOI:
--
发表时间:
2024
期刊:
arXiv.org
影响因子:
--
通讯作者:
Abutalib Aghayev
中科院分区:
文献类型:
--
作者: Zhiying Liang;Vahab Jabrayilov;Aleksey Charapko;Abutalib Aghayev研究方向: -- MeSH主题词: --
关键词: --
来源链接:pubmed详情页地址

文献摘要

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 switching from a language with GC to a language with manual memory management, so far, there has not been a systematic study of the GC overhead of running an SMR-based cloud system. This paper studies the overhead of running an SMR-based cloud system written in a language with GC. To this end, we design from scratch a canonical SMR system -- a MultiPaxos-based replicated in-memory key-value store -- and we implement it in C++, Java, Rust, and Go. We compare the performance and resource usage of these implementations when running on the cloud under different workloads and resource constraints and report our results. Our findings have implications for the design of cloud systems.
状态机复制(SMR)协议是许多分布式系统的支柱。由于云计算具有可扩展性和成本效益等诸多优势,企业和初创公司越来越多地在云上构建其分布式系统。在云上构建系统时,公司面临的首要技术问题之一是使用哪种编程语言。在做出这一决策时需要考虑的众多因素中,包括是使用具有垃圾回收(GC)功能的语言,如Java或Go,还是使用手动内存管理的语言,如C++或Rust。如今,由于开发便捷,公司主要倾向于使用具有GC的语言,如Go、Kotlin,甚至Python;然而,天下没有免费的午餐:GC会消耗资源(内存和CPU)以及性能(由于GC暂停导致的长尾延迟)。虽然有传闻称从具有GC的语言切换到手动内存管理的语言时,云成本降低且尾部延迟得到改善,但到目前为止,对于运行基于SMR的云系统的GC开销还没有系统的研究。本文研究了使用具有GC的语言编写的基于SMR的云系统的开销。为此,我们从头设计了一个标准的SMR系统——一个基于MultiPaxos的复制式内存键值存储,并在C++、Java、Rust和Go中实现它。我们比较了这些实现在不同工作负载和资源约束下在云上运行时的性能和资源使用情况,并报告了我们的结果。我们的研究结果对云系统的设计具有启示意义。
参考文献(1)
被引文献(0)
Treehouse: A Case For Carbon-Aware Datacenter Software
DOI:
10.1145/3630614.3630626
发表时间:
2022-01
期刊:
ACM SIGENERGY Energy Informatics Review
影响因子:
0
作者:
Thomas Anderson;A. Belay;Mosharaf Chowdhury;Asaf Cidon;Irene Zhang
通讯作者:
Thomas Anderson;A. Belay;Mosharaf Chowdhury;Asaf Cidon;Irene Zhang

数据更新时间:{{ references.updateTime }}

Abutalib Aghayev
通讯地址:
--
所属机构:
--
电子邮件地址:
--
免责声明免责声明
1、猫眼课题宝专注于为科研工作者提供省时、高效的文献资源检索和预览服务;
2、网站中的文献信息均来自公开、合规、透明的互联网文献查询网站,可以通过页面中的“来源链接”跳转数据网站。
3、在猫眼课题宝点击“求助全文”按钮,发布文献应助需求时求助者需要支付50喵币作为应助成功后的答谢给应助者,发送到用助者账户中。若文献求助失败支付的50喵币将退还至求助者账户中。所支付的喵币仅作为答谢,而不是作为文献的“购买”费用,平台也不从中收取任何费用,
4、特别提醒用户通过求助获得的文献原文仅用户个人学习使用,不得用于商业用途,否则一切风险由用户本人承担;
5、本平台尊重知识产权,如果权利所有者认为平台内容侵犯了其合法权益,可以通过本平台提供的版权投诉渠道提出投诉。一经核实,我们将立即采取措施删除/下架/断链等措施。
我已知晓