{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,17]],"date-time":"2025-12-17T08:32:57Z","timestamp":1765960377280,"version":"3.41.0"},"reference-count":64,"publisher":"Association for Computing Machinery (ACM)","issue":"2","funder":[{"name":"Major Project of ISCAS","award":["ISCAS-ZD-202302"],"award-info":[{"award-number":["ISCAS-ZD-202302"]}]},{"name":"Basic Research Project of ISCAS","award":["ISCAS-JCZD-202403"],"award-info":[{"award-number":["ISCAS-JCZD-202403"]}]},{"name":"Youth Innovation Promotion Association at Chinese Academy of Sciences","award":["Y2022044"],"award-info":[{"award-number":["Y2022044"]}]},{"name":"National Science Foundation","award":["2105564"],"award-info":[{"award-number":["2105564"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2025,6,30]]},"abstract":"<jats:p>Popular big data frameworks commonly run atop Java Virtual Machine (JVM) and rely on garbage collection (GC) mechanism to automatically allocate\/reclaim in-memory objects. Existing garbage collectors are designed based on the hypothesis that most objects are short lived. However, big data frameworks usually generate many long-lived data objects, which can cause heavy GC overhead. Recent approaches have reduced GC overhead in big data frameworks but still suffer from heavy human efforts, additional runtime overhead, or suboptimal GC efficiency.<\/jats:p>\n          <jats:p>\n            This article describes the design of\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            , a big-data-friendly garbage collector that significantly reduces GC overhead introduced by long-lived data objects.\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            follows a cross-level co-design. At the big data framework level,\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            provides two annotations for framework developers to denote the creation and release of data objects. Based on the annotations,\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            tracks the lifecycles of annotated data objects and optimizes their allocation\/reclamation at the GC level. At the GC level, we design a label-based allocator that stores data objects separately from other objects and balances their memory usage in the same JVM, leading to fewer GC cycles. We further design an efficient collector to eliminate unnecessary marking and copying of data objects during GC cycles, lowering the GC time. We have integrated\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            into OpenJDK ZGC. The extensive evaluation, using two popular big data frameworks (Flink and Spark) and a key\u2013value database (Cassandra), shows that\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            achieves 31\u201382% GC time reduction compared to the baseline ZGC.\n            <jats:monospace>BridgeGC<\/jats:monospace>\n            also outperforms other traditional and academic garbage collectors in end-to-end performance.\n          <\/jats:p>","DOI":"10.1145\/3722110","type":"journal-article","created":{"date-parts":[[2025,3,7]],"date-time":"2025-03-07T11:14:16Z","timestamp":1741346056000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["BridgeGC: An Efficient Cross-Level Garbage Collector for Big Data Frameworks"],"prefix":"10.1145","volume":"22","author":[{"ORCID":"https:\/\/orcid.org\/0009-0001-3147-0019","authenticated-orcid":false,"given":"Yicheng","family":"Wang","sequence":"first","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-2013-4241","authenticated-orcid":false,"given":"Lijie","family":"Xu","sequence":"additional","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0060-2266","authenticated-orcid":false,"given":"Tian","family":"Guo","sequence":"additional","affiliation":[{"name":"Worcester Polytechnic Institute","place":["Worcester, United States"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3323-0449","authenticated-orcid":false,"given":"Wensheng","family":"Dou","sequence":"additional","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8645-6217","authenticated-orcid":false,"given":"Hongbin","family":"Zeng","sequence":"additional","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-4941-9237","authenticated-orcid":false,"given":"Wei","family":"Wang","sequence":"additional","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8561-2481","authenticated-orcid":false,"given":"Jun","family":"Wei","sequence":"additional","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-4875-732X","authenticated-orcid":false,"given":"Tao","family":"Huang","sequence":"additional","affiliation":[{"name":"Key Laboratory of System Software (Chinese Academy of Sciences), Institute of Software, Chinese Academy of Sciences","place":["Beijing, China"]},{"name":"University of Chinese Academy of Sciences","place":["Beijing, China"]}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,7]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Apache Flink. 2015. Retrieved fromhttps:\/\/flink.apache.org\/"},{"key":"e_1_3_2_3_2","unstructured":"Project Tungsten. 2015. Retrieved fromhttps:\/\/databricks.com\/blog\/2015\/04\/28\/project-tungsten-bringing-spark-closer-to-bare-metal.html"},{"key":"e_1_3_2_4_2","unstructured":"Apache Cassandra. 2024. Retrieved from https:\/\/cassandra.apache.org\/"},{"key":"e_1_3_2_5_2","unstructured":"Apache Drill. 2024. Retrieved from https:\/\/drill.apache.org\/"},{"key":"e_1_3_2_6_2","unstructured":"Apache Geode. 2024. Retrieved from https:\/\/geode.apache.org\/"},{"key":"e_1_3_2_7_2","unstructured":"Apache HBase. 2024. https:\/\/hbase.apache.org\/"},{"key":"e_1_3_2_8_2","unstructured":"Apache Ignite. 2024. Retrieved from https:\/\/ignite.apache.org\/"},{"key":"e_1_3_2_9_2","unstructured":"Apache Spark. 2024. Retrieved from https:\/\/spark.apache.org\/"},{"key":"e_1_3_2_10_2","unstructured":"Flink OLAP Quickstart. 2024. Retrieved from https:\/\/nightlies.apache.org\/flink\/flink-docs-master\/docs\/dev\/table\/olap_quickstart\/#runtime-options"},{"key":"e_1_3_2_11_2","unstructured":"Shenandoah GC. 2024. Retrieved from https:\/\/wiki.openjdk.org\/display\/shenandoah"},{"key":"e_1_3_2_12_2","unstructured":"The Z Garbage Collector. 2024. Retrieved from https:\/\/wiki.openjdk.org\/display\/zgc\/Main"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/3451342"},{"key":"e_1_3_2_14_2","unstructured":"Apache Flink. 2024. Flink Examples Batch at Release 1.9. Retrieved November 6 2024 from https:\/\/github.com\/apache\/flink\/tree\/release-1.9\/flink-examples\/flink-examples-batch."},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/3135974.3135986"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454034"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/3092255.3092272"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3302424.3303988"},{"key":"e_1_3_2_19_2","first-page":"119","volume-title":"Proceedings of the ACM International Symposium on Memory Management (ISMM\u201913)","author":"Bu Yingyi","year":"2013","unstructured":"Yingyi Bu, Vinayak Borkar, Guoqing Xu, and Michael J. Carey. 2013. A bloat-aware design for big data applications. In Proceedings of the ACM International Symposium on Memory Management (ISMM\u201913). 119\u2013130."},{"key":"e_1_3_2_20_2","doi-asserted-by":"crossref","unstructured":"Lei Chen Jiacheng Zhao Chenxi Wang Ting Cao John Zigman Haris Volos Onur Mutlu Fang Lv Xiaobing Feng Guoqing Harry Xu and others. 2022. Unified holistic memory management supporting multiple big data processing frameworks over hybrid memories. ACM Transactions on Computer Systems (TOCS) 39 1\u20134 (2022) 1\u201338.","DOI":"10.1145\/3511211"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3243176.3243195"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/2754169.2754176"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/1807128.1807152"},{"key":"e_1_3_2_24_2","unstructured":"Stephan Ewen. 2015. Off-heap Memory in Apache Flink and the Curious JIT Compiler. Retrieved from https:\/\/flink.apache.org\/news\/2015\/09\/16\/off-heap-memory.html"},{"key":"e_1_3_2_25_2","volume-title":"Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS\u201915)","author":"Gog Ionel","year":"2015","unstructured":"Ionel Gog, Jana Giceva, Malte Schwarzkopf, Kapil Vaswani, Dimitrios Vytiniotis, Ganesan Ramalingam, Manuel Costa, Derek G Murray, Steven Hand, and Michael Isard. 2015. Broom: Sweeping out garbage collection from big data systems. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS\u201915)."},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICDEW.2010.5452747"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/1035292.1028983"},{"key":"e_1_3_2_28_2","unstructured":"Fabian H\u00fcske. 2015. Juggling with Bits and Bytes. Retrieved from https:\/\/flink.apache.org\/news\/2015\/05\/11\/Juggling-with-Bits-and-Bytes.html"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/3582016.3582045"},{"key":"e_1_3_2_30_2","doi-asserted-by":"crossref","unstructured":"Iacovos G. Kolokasis Giannos Evdorou Shoaib Akram Christos Kozanitis Anastasios Papagiannis Foivos S. Zakkak Polyvios Pratikakis and Angelos Bilas. 2024. TeraHeap: Exploiting flash storage for mitigating DRAM pressure in managed big data frameworks. ACM Transactions on Programming Languages and Systems 46 4 (2024) 1\u201337.","DOI":"10.1145\/3700593"},{"key":"e_1_3_2_31_2","volume-title":"Proceedings of USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage\u201920)","author":"Kolokasis Iacovos G.","year":"2020","unstructured":"Iacovos G. Kolokasis, Anastasios Papagiannis, Polyvios Pratikakis, Angelos Bilas, and Foivos Zakkak. 2020. Say goodbye to off-heap caches! on-heap caches using memory-mapped I\/O. In Proceedings of USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage\u201920)."},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/3318464.3380591"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/3313808.3313820"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/3546868"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3431803"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.14778\/2994509.2994513"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523441"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/2954679.2872386"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359643"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3296957.3173200"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/2818302.2818308"},{"key":"e_1_3_2_42_2","first-page":"349","volume-title":"Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201916)","author":"Nguyen Khanh","year":"2016","unstructured":"Khanh Nguyen, Lu Fang, Guoqing Xu, Brian Demsky, Shan Lu, Sanazsadat Alamian, and Onur Mutlu. 2016. Yak: A high-performance big-data-friendly garbage collector. In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201916). 349\u2013365."},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/2694344.2694345"},{"key":"e_1_3_2_44_2","unstructured":"Kehinde Philip. 2018. Spark Executor GC Taking Long. Retrieved January 21 2018 from https:\/\/stackoverflow.com\/questions\/38965787\/spark-executor-gc-taking-long"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1145\/2544173.2509527"},{"issue":"1","key":"e_1_3_2_46_2","first-page":"1","article-title":"Deca: A garbage collection optimizer for in-memory data processing","volume":"36","author":"Shi Xuanhua","year":"2019","unstructured":"Xuanhua Shi, Zhixiang Ke, Yongluan Zhou, Hai Jin, Lu Lu, Xiong Zhang, Ligang He, Zhenyu Hu, and Fei Wang. 2019. Deca: A garbage collection optimizer for in-memory data processing. ACM Trans. Comput. Sci. 36, 1 (2019), 1\u201347.","journal-title":"ACM Trans. Comput. Sci."},{"key":"e_1_3_2_47_2","volume-title":"Pointer Metadata Using Multi-Mapped Memory","author":"Stefan Karlsson","year":"2021","unstructured":"Karlsson Stefan. 2021. Pointer Metadata Using Multi-Mapped Memory. Retrieved from https:\/\/wiki.openjdk.org\/display\/zgc\/Pointer+Metadata+using+Multi-Mapped+memory"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/3190508.3190512"},{"key":"e_1_3_2_49_2","first-page":"1","volume-title":"Proceedings of the USENIX Annual Technical Conference (ATC\u201921)","author":"Taranov Konstantin","year":"2021","unstructured":"Konstantin Taranov, Rodrigo Bruno, Gustavo Alonso, and Torsten Hoefler. 2021. Naos: Serialization-free RDMA networking in Java. In Proceedings of the USENIX Annual Technical Conference (ATC\u201921). 1\u201314."},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314650"},{"key":"e_1_3_2_51_2","first-page":"261","volume-title":"Proceedings of USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201920)","author":"Wang Chenxi","year":"2020","unstructured":"Chenxi Wang, Haoran Ma, Shi Liu, Yuanqi Li, Zhenyuan Ruan, Khanh Nguyen, Michael D. Bond, Ravi Netravali, Miryung Kim, and Guoqing Harry Xu. 2020. Semeru: A memory-disaggregated managed runtime. In Proceedings of USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201920). 261\u2013280."},{"key":"e_1_3_2_52_2","first-page":"35","volume-title":"Proceedings of USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201922)","author":"Wang Chenxi","year":"2022","unstructured":"Chenxi Wang, Haoran Ma, Shi Liu, Yifan Qiao, Jonathan Eyolfson, Christian Navasca, Shan Lu, and Guoqing Harry Xu. 2022. MemLiner: Lining up tracing and application for a far-memory-friendly runtime. In Proceedings of USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201922). 35\u201353."},{"key":"e_1_3_2_53_2","first-page":"745","volume-title":"Proceedings of USENIX Annual Technical Conference (USENIX ATC\u201917)","author":"Wang Jingjing","year":"2017","unstructured":"Jingjing Wang and Magdalena Balazinska. 2017. Elastic memory management for cloud data analytics. In Proceedings of USENIX Annual Technical Conference (USENIX ATC\u201917). 745\u2013758."},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1145\/3381052.3381318"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/3627703.3650087"},{"key":"e_1_3_2_56_2","first-page":"137","volume-title":"Proceedings of the USENIX Annual Technical Conference (ATC\u201922)","author":"Wu Mingyu","year":"2022","unstructured":"Mingyu Wu, Shuaiwei Wang, Haibo Chen, and Binyu Zang. 2022. Zero-change object transmission for distributed big data analytics. In Proceedings of the USENIX Annual Technical Conference (ATC\u201922). 137\u2013150."},{"key":"e_1_3_2_57_2","first-page":"159","volume-title":"Proceedings of the USENIX Annual Technical Conference (ATC\u201920)","author":"Wu Mingyu","year":"2020","unstructured":"Mingyu Wu, Ziming Zhao, Yanfei Yang, Haoyu Li, Haibo Chen, Binyu Zang, Haibing Guan, Sanhong Li, Chuansheng Lu, and Tongbao Zhang. 2020. Platinum: A CPU-efficient concurrent garbage collector for tail-reduction of interactive services. In Proceedings of the USENIX Annual Technical Conference (ATC\u201920). 159\u2013172."},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.14778\/3303753.3303762"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2016.105"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/3381898.3397213"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385977"},{"key":"e_1_3_2_62_2","first-page":"22:1\u201322:34","article-title":"Deep dive into ZGC: A modern garbage collector in OpenJDK","author":"Yang Albert Mingkun","year":"2022","unstructured":"Albert Mingkun Yang and Tobias Wrigstad. 2022. Deep dive into ZGC: A modern garbage collector in OpenJDK. ACM Trans. Program. Lang. Syst. (2022), 22:1\u201322:34.","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.1145\/3511706"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1145\/3007611.2892251"},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523440"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3722110","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,1]],"date-time":"2025-07-01T12:32:10Z","timestamp":1751373130000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3722110"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,30]]},"references-count":64,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2025,6,30]]}},"alternative-id":["10.1145\/3722110"],"URL":"https:\/\/doi.org\/10.1145\/3722110","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2025,6,30]]},"assertion":[{"value":"2024-07-19","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-02-26","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-07-01","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}