Write a Blog >>
ESEC/FSE 2021
Thu 19 - Sat 28 August 2021 Clowdr Platform
Wed 25 Aug 2021 16:00 - 16:10 - Analysis—Programming Languages Chair(s): Santanu Kumar Dash, Michael Pradel
Thu 26 Aug 2021 04:00 - 04:10 - Analysis—Programming Languages Chair(s): Ramy Shahin

Microservices architecture, which is increasingly being adopted by large technology companies, can accelerate development and deployment of backend code by partitioning a monolithic infrastructure into independent components. At the same time, microservices often compose into massively distributed systems, where analyzing the behavior of an individual service may not be enough to diagnose a performance regression or find a point of failure. Instead, a more global view of the entire computation may be required, where some form of global context is used to trace relevant information flowing through the system.

In the Go language, the recommended method of propagating this tracing context through service’s code is to pass it as the first parameter to all functions on call paths where the context is used. This kind of code transformation, in addition to modifying function calls and function signatures, may involve modifications to other language constructs – performing it manually can be very tedious, particularly for large existing services. In this paper we describe an automated code transformation tool supporting this style of context propagation. We describe the design and implementation of the tool and, based on a case study using real production services, demonstrate that the tool can on average eliminate 94% of manual effort required to propagate tracing context through the code of a given service.

Adam Welc currently works at Uber Technologies. Previously, he worked at Huawei, focusing on optimizing Java for execution in the cloud. Adam has also worked as a researcher at Intel, Adobe, and Oracle, developing new language implementations as well as novel approaches for concurrent programming. His research interests are in the area of programming languages implementation, design, and tooling, with specific interests in runtime systems, interpreters and compilers, as well as performance analysis and optimization. Adam holds a PhD in Computer Science from Purdue University.

Wed 25 Aug

Displayed time zone: Athens change

16:00 - 17:00
Analysis—Programming LanguagesResearch Papers / Industry Papers +12h
Chair(s): Santanu Kumar Dash University of Surrey, Michael Pradel University of Stuttgart
16:00
10m
Paper
Automated Code Transformation for Context Propagation in Go
Industry Papers
Adam Welc Uber Technologies
DOI
16:10
10m
Paper
Toward Efficient Interactions between Python and Native Libraries
Research Papers
Jialiang Tan College of William & Mary, Yu Chen College of William & Mary, Zhenming Liu College of William & Mary, Bin Ren College of William & Mary, Shuaiwen Leon Song University of Sydney, Xipeng Shen North Carolina State University, Xu Liu North Carolina State University, Oak Ridge National Laboratory, USA
DOI
16:20
10m
Paper
Accelerating JavaScript Static Analysis via Dynamic ShortcutsArtifacts AvailableArtifacts Reusable
Research Papers
DOI
16:30
30m
Live Q&A
Q&A (Analysis—Programming Languages)
Research Papers

Thu 26 Aug

Displayed time zone: Athens change

04:00 - 05:00
Analysis—Programming LanguagesResearch Papers / Industry Papers
Chair(s): Ramy Shahin University of Toronto
04:00
10m
Paper
Automated Code Transformation for Context Propagation in Go
Industry Papers
Adam Welc Uber Technologies
DOI
04:10
10m
Paper
Toward Efficient Interactions between Python and Native Libraries
Research Papers
Jialiang Tan College of William & Mary, Yu Chen College of William & Mary, Zhenming Liu College of William & Mary, Bin Ren College of William & Mary, Shuaiwen Leon Song University of Sydney, Xipeng Shen North Carolina State University, Xu Liu North Carolina State University, Oak Ridge National Laboratory, USA
DOI
04:20
10m
Paper
Accelerating JavaScript Static Analysis via Dynamic ShortcutsArtifacts AvailableArtifacts Reusable
Research Papers
DOI
04:30
30m
Live Q&A
Q&A (Analysis—Programming Languages)
Research Papers