A Study of Real-World Data Races in Golang

被引:8
|
作者
Chabbi, Milind [1 ]
Ramanathan, Murali Krishna [1 ]
机构
[1] Uber Technol Inc, Programming Syst Grp, Sunnyvale, CA 94086 USA
关键词
Data race; Golang; Dynamic analysis;
D O I
10.1145/3519939.3523720
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The concurrent programming literature is rich with tools and techniques for data race detection. Less, however, has been known about real-world, industry-scale deployment, experience, and insights about data races. Golang (Go for short) is a modern programming language that makes concurrency a first-class citizen. Go offers both message passing and shared memory for communicating among concurrent threads. Go is gaining popularity in modern microservice-based systems. Data races in Go stand in the face of its emerging popularity. In this paper, using our industrial codebase as an example, we demonstrate that Go developers embrace concurrency and show how the abundance of concurrency alongside language idioms and nuances make Go programs highly susceptible to data races. Google's Go distribution ships with a built-in dynamic data race detector based on ThreadSanitizer. However, dynamic race detectors pose scalability and flakiness challenges; we discuss various software engineering trade-offs to make this detector work effectively at scale. We have deployed this detector in Uber's 46 million lines of Go codebase hosting 2100 distinct microservices, found over 2000 data races, and fixed over 1000 data races, spanning 790 distinct code patches submitted by 210 unique developers over a six-month period. Based on a detailed investigation of these data race patterns in Go, we make seven high-level observations relating to the complex interplay between the Go language paradigm and data races.
引用
收藏
页码:474 / 489
页数:16
相关论文
共 50 条
  • [31] Real-World Study Real-World Study of the Use of Azacitidine in Myelodysplasia in Australia
    Enjeti, Anoop
    Ashraf, Asma
    Caillet, Vincent
    Alam, Arif
    Sillar, Jonathan Robert
    Castaldi, Francesco
    Paine, Taliesha
    Keer, Harold N.
    BLOOD, 2022, 140 : 12341 - 12342
  • [32] Turning real-world data into real-world evidence: some practical guidance
    Schneeweiss, Sebastian
    PRAVENTION UND GESUNDHEITSFORDERUNG, 2023,
  • [33] Advancing regulatory science through real-world data and real-world evidence
    Cure, Pablo
    Fessel, Joshua P.
    Hartshorn, Christopher M.
    Steele, Scott J.
    JOURNAL OF CLINICAL AND TRANSLATIONAL SCIENCE, 2024, 8 (01)
  • [34] Intrathecal catheterisation after accidental dural puncture: real-world data, real-world benefits and real-world barriers
    Broom, M. A.
    ANAESTHESIA, 2023, 78 (10) : 1195 - 1198
  • [35] A Statistical Roadmap for Journey from Real-World Data to Real-World Evidence
    Yixin Fang
    Hongwei Wang
    Weili He
    Therapeutic Innovation & Regulatory Science, 2020, 54 : 749 - 757
  • [36] What Does It Take to Transform Real-World Data Into Real-World Evidence?
    Ramamoorthy, Anuradha
    Huang, Shiew-Mei
    CLINICAL PHARMACOLOGY & THERAPEUTICS, 2019, 106 (01) : 10 - 18
  • [37] Real-World Evidence and Real-World Data for Evaluating Drug Safety and Effectiveness
    Corrigan-Curay, Jacqueline
    Sacks, Leonard
    Woodcock, Janet
    JAMA-JOURNAL OF THE AMERICAN MEDICAL ASSOCIATION, 2018, 320 (09): : 867 - 868
  • [38] A Statistical Roadmap for Journey from Real-World Data to Real-World Evidence
    Fang, Yixin
    Wang, Hongwei
    He, Weili
    THERAPEUTIC INNOVATION & REGULATORY SCIENCE, 2020, 54 (04) : 749 - 757
  • [39] Deriving Real-World Insights From Real-World Data: Biostatistics to the Rescue
    Pencina, Michael J.
    Rockhold, Frank W.
    D'Agostino, Ralph B., Sr.
    ANNALS OF INTERNAL MEDICINE, 2018, 169 (06) : 401 - +
  • [40] Real-world data in the molecular erafinding the reality in the real world
    Dickson, D. J.
    Pfeifer, J. D.
    CLINICAL PHARMACOLOGY & THERAPEUTICS, 2016, 99 (02) : 186 - 197