UM  > Faculty of Science and Technology
Residential Collegefalse
Status已發表Published
Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in Golang
Zhao, Junxian1; Zhou, Xiaobo2; Chang, Sang-Yoon1; Xu, Cheng-Zhong2
2023-08
Conference NameHPDC '23: Proceedings of the 32nd International Symposium on High-Performance Parallel and Distributed Computing
Pages169–180
Conference DateJune 20-23, 2023
Conference PlaceOrlando, FL
CountryUSA
Publication PlaceUSA
PublisherACM
Abstract

Garbage Collection (GC) is a representative automatic memory manager widely deployed in popular programming languages, such as Java, C#, and Golang (Go). Through GC, these languages provide programmers with flexibility and safety. However, GC leads to non-trivial overhead in compute and memory resources during application runtime. GC threads compete with non-GC threads (mutators) of an application, which particularly impacts latencycritical (LC) applications and causes long tail latency. Existing GC approaches do not efficiently address the interference, as GC is triggered passively without a global insight of the application; or they employ incremental GC to reduce the interference, while the incremental progress is not dynamically tailored during GC process according to runtime characteristics, which leads to significant performance degradation upon bursty requests. We present LEGO, an efficient and non-intrusive GC framework that deploys a novel elastic incremental GC mechanism integrated with an adaptive GC scheduler to reduce CPU contention between GC and mutators, and improve resource utilization and QoS of LC applications. We choose to develop LEGO in Go, as Go is specifically designed for cloud applications and the current GC mechanisms for JVM are ineffective for Go due to its unique GPM thread scheduling and memory allocation model. LEGO adapts incremental GC into Go to tackle the full GC issue and addresses resource contention with a proactive scheduler for adaptive GC triggering. Importantly, LEGO leverages the elastic incremental GC mechanism in mitigating the interference from unavoidable GC in face of bursts of requests. We implement and evaluate LEGO with popular LC applications developed in Go. Results show that compared to the default Go GC and a tailored G1 GC, LEGO significantly improves both the tail latency and throughput for LC applications.

KeywordGolang (Go) Garbage Collection (Gc) Gc Scheduler Latency Critical (Lc) Tail Latency
DOI10.1145/3588195.3592998
URLView the original
Language英語English
Scopus ID2-s2.0-85169592296
Fulltext Access
Citation statistics
Document TypeConference paper
CollectionFaculty of Science and Technology
THE STATE KEY LABORATORY OF INTERNET OF THINGS FOR SMART CITY (UNIVERSITY OF MACAU)
Corresponding AuthorZhou, Xiaobo
Affiliation1.University of Colorado Colorado Springs
2.University of Macau
Corresponding Author AffilicationUniversity of Macau
Recommended Citation
GB/T 7714
Zhao, Junxian,Zhou, Xiaobo,Chang, Sang-Yoon,et al. Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in Golang[C], USA:ACM, 2023, 169–180.
APA Zhao, Junxian., Zhou, Xiaobo., Chang, Sang-Yoon., & Xu, Cheng-Zhong (2023). Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in Golang. , 169–180.
Files in This Item:
There are no files associated with this item.
Related Services
Recommend this item
Bookmark
Usage statistics
Export to Endnote
Google Scholar
Similar articles in Google Scholar
[Zhao, Junxian]'s Articles
[Zhou, Xiaobo]'s Articles
[Chang, Sang-Yoon]'s Articles
Baidu academic
Similar articles in Baidu academic
[Zhao, Junxian]'s Articles
[Zhou, Xiaobo]'s Articles
[Chang, Sang-Yoon]'s Articles
Bing Scholar
Similar articles in Bing Scholar
[Zhao, Junxian]'s Articles
[Zhou, Xiaobo]'s Articles
[Chang, Sang-Yoon]'s Articles
Terms of Use
No data!
Social Bookmark/Share
All comments (0)
No comment.
 

Items in the repository are protected by copyright, with all rights reserved, unless otherwise indicated.