Demo Data from EDBT 2026 / reviewers in the wild / expert
Lu Fang 0003
dblp:33/8116-3
· DBLP profile ↗
9ranked-venue papers
2as first author
1since 2021 · last 2023
0000-0002-1451-354XORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 2 first-author · 1 since 2021Systems, architecture and hardware · 2
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
7 papers |
Runtime systems and virtual machines · 29% Debugging and program repair · 26% Compilers and program optimization · 19% | |
| Computer architecture, parallel and distributed computing, and storage systems
5 papers |
High-performance computing · 49% Parallel and multicore computing · 19% Memory systems · 19% |
Topics — the 15 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Debugging and program repair › fault localization
statistical debugging |
0.9 | 2 | 2023 | Toward More Efficient Statistical Debugging with Abstraction Refinement · ACM Trans. Softw. Eng. Methodol. 2023 Low-overhead and fully automated statistical debugging with abstraction refinement · OOPSLA 2016 |
Operating systems › resource management
memory management |
0.5 | 2 | 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018 FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications · ASPLOS 2015 |
Runtime systems and virtual machines
garbage collection |
0.5 | 2 | 2016 | Yak: A High-Performance Big-Data-Friendly Garbage Collector · OSDI 2016 Interruptible tasks: treating memory pressure as interrupts for highly scalable data-parallel programs · SOSP 2015 |
Runtime systems and virtual machines
managed runtime |
0.3 | 1 | 2018 | Skyway: Connecting Managed Heaps in Distributed Big Data Systems · ASPLOS 2018 |
Runtime systems and virtual machines › runtime memory management
memory bloat |
0.3 | 1 | 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018 |
High-performance computing
data transfer |
0.3 | 1 | 2018 | Skyway: Connecting Managed Heaps in Distributed Big Data Systems · ASPLOS 2018 |
Program verification
abstraction refinement |
0.2 | 1 | 2016 | Low-overhead and fully automated statistical debugging with abstraction refinement · OOPSLA 2016 |
Compilers and program optimization › program transformation
compiler transformations |
0.2 | 1 | 2015 | FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications · ASPLOS 2015 |
Parallel and multicore computing
data-parallel programming |
0.2 | 1 | 2015 | Interruptible tasks: treating memory pressure as interrupts for highly scalable data-parallel programs · SOSP 2015 |
Memory systems
memory management |
0.2 | 1 | 2015 | Interruptible tasks: treating memory pressure as interrupts for highly scalable data-parallel programs · SOSP 2015 |
Program analysis
dynamic analysis |
0.2 | 1 | 2023 | Toward More Efficient Statistical Debugging with Abstraction Refinement · ACM Trans. Softw. Eng. Methodol. 2023 |
Compilers and program optimization
program instrumentation |
0.2 | 1 | 2023 | Toward More Efficient Statistical Debugging with Abstraction Refinement · ACM Trans. Softw. Eng. Methodol. 2023 |
High-performance computing
data-intensive computing |
0.1 | 1 | 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018 |
Debugging and program repair › fault localization
production-run failure diagnosis |
0.1 | 1 | 2016 | Low-overhead and fully automated statistical debugging with abstraction refinement · OOPSLA 2016 |
High-performance computing
performance optimization |
0.1 | 1 | 2016 | Yak: A High-Performance Big-Data-Friendly Garbage Collector · OSDI 2016 |
Methods — techniques the papers use, named apart from their topics
abstraction refinement · 0.9statistical analysis · 0.7static bounding of heap objects · 0.7direct heap connection · 0.7compiler transformation · 0.7garbage collection · 0.5static object bounding · 0.4interruptible tasks · 0.4compiler framework · 0.4statistical debugging · 0.2memory reclamation · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Toward More Efficient Statistical Debugging with Abstraction RefinementabstractDebugging is known to be a notoriously painstaking and time-consuming task. As one major family of automated debugging, statistical debugging approaches have been well investigated over the past decade, which collect failing and passing executions and apply statistical techniques to identify discriminative elements as potential bug causes. Most of the existing approaches instrument the entire program to produce execution profiles for debugging, thus incurring hefty instrumentation and analysis cost. However, as in fact a major part of the program code is error-free, full-scale program instrumentation is wasteful and unnecessary. This article presents a systematic abstraction refinement-based pruning technique for statistical debugging. Our technique only needs to instrument and analyze the code partially. While guided by a mathematically rigorous analysis, our technique is guaranteed to produce the same debugging results as an exhaustive analysis in deterministic settings. With the help of the effective and safe pruning, our technique greatly saves the cost of failure diagnosis without sacrificing any debugging capability. We apply this technique to two different statistical debugging scenarios: in-house and production-run statistical debugging. The comprehensive evaluations validate that our technique can significantly improve the efficiency of statistical debugging in both scenarios, while without jeopardizing the debugging capability. Zhiqiang Zuo 0002, Xintao Niu, Siyi Zhang 0011, Lu Fang 0003, Siau-Cheng Khoo, Shan Lu 0001, Chengnian Sun, Guoqing Harry Xu |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2018 | Skyway: Connecting Managed Heaps in Distributed Big Data SystemsabstractManaged languages such as Java and Scala are prevalently used in development of large-scale distributed systems. Under the managed runtime, when performing data transfer across machines, a task frequently conducted in a Big Data system, the system needs to serialize a sea of objects into a byte sequence before sending them over the network. The remote node receiving the bytes then deserializes them back into objects. This process is both performance-inefficient and labor-intensive: (1) object serialization/deserialization makes heavy use of reflection, an expensive runtime operation and/or (2) serialization/deserialization functions need to be hand-written and are error-prone. This paper presents Skyway, a JVM-based technique that can directly connect managed heaps of different (local or remote) JVM processes. Under Skyway, objects in the source heap can be directly written into a remote heap without changing their formats. Skyway provides performance benefits to any JVM-based system by completely eliminating the need (1) of invoking serialization/deserialization functions, thus saving CPU time, and (2) of requiring developers to hand-write serialization functions. Khanh Nguyen 0001, Lu Fang 0003, Christian Navasca, Guoqing Harry Xu, Brian Demsky, Shan Lu 0001 |
ASPLOS | 2 |
| 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive SystemsabstractThe past decade has witnessed increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-oriented programming language such as Java is often the developer’s choice for implementing such applications, due to its quick development cycle and rich suite of libraries and frameworks. While the use of such languages makes programming easier, their automated memory management comes at a cost. When the managed runtime meets large volumes of input data, memory bloat is significantly magnified and becomes a scalability-prohibiting bottleneck. This article first studies, analytically and empirically, the impact of bloat on the performance and scalability of large-scale, real-world data-intensive systems. To combat bloat, we design a novel compiler framework, called F acade , that can generate highly efficient data manipulation code by automatically transforming the data path of an existing data-intensive application. The key treatment is that in the generated code, the number of runtime heap objects created for data classes in each thread is (almost) statically bounded , leading to significantly reduced memory management cost and improved scalability. We have implemented F acade and used it to transform seven common applications on three real-world, already well-optimized data processing frameworks: GraphChi, Hyracks, and GPS. Our experimental results are very positive: the generated programs have (1) achieved a 3% to 48% execution time reduction and an up to 88× GC time reduction, (2) consumed up to 50% less memory, and (3) scaled to much larger datasets. Khanh Nguyen 0001, Kai Wang 0029, Yingyi Bu, Lu Fang 0003, Guoqing Harry Xu |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2016 | Low-overhead and fully automated statistical debugging with abstraction refinementabstractCooperative statistical debugging is an effective approach for diagnosing production-run failures. To quickly identify failure predictors from the huge program predicate space, existing techniques rely on random or heuristics-guided predicate sampling at the user side. However, none of them can satisfy the requirements of low cost, low diagnosis latency, and high diagnosis quality simultaneously, which are all indispensable for statistical debugging to be practical. Zhiqiang Zuo 0002, Lu Fang 0003, Siau-Cheng Khoo, Guoqing Harry Xu, Shan Lu 0001 |
OOPSLA | 2 |
| 2016 | Yak: A High-Performance Big-Data-Friendly Garbage Collector
Khanh Nguyen 0001, Lu Fang 0003, Guoqing Harry Xu, Brian Demsky, Shan Lu 0001, Sanazsadat Alamian, Onur Mutlu |
OSDI | 2 |
| 2015 | FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data ApplicationsabstractThe past decade has witnessed the increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-oriented programming language such as Java is often the developer's choice for implementing such applications, due to its quick development cycle and rich community resource. While the use of such languages makes programming easier, their automated memory management comes at a cost. When the managed runtime meets Big Data, this cost is significantly magnified and becomes a scalability-prohibiting bottleneck. This paper presents a novel compiler framework, called Facade, that can generate highly-efficient data manipulation code by automatically transforming the data path of an existing Big Data application. The key treatment is that in the generated code, the number of runtime heap objects created for data types in each thread is (almost) statically bounded, leading to significantly reduced memory management cost and improved scalability. We have implemented Facade and used it to transform 7 common applications on 3 real-world, already well-optimized Big Data frameworks: GraphChi, Hyracks, and GPS. Our experimental results are very positive: the generated programs have (1) achieved a 3%--48% execution time reduction and an up to 88X GC reduction; (2) consumed up to 50% less memory, and (3) scaled to much larger datasets. Khanh Nguyen 0001, Kai Wang 0029, Yingyi Bu, Lu Fang 0003, Jianfei Hu, Guoqing Harry Xu |
ASPLOS | 4 |
| 2015 | PerfBlower: Quickly Detecting Memory-Related Performance Problems via AmplificationabstractPerformance problems in managed languages are extremely difficult to find. Despite many efforts to find those problems, most existing work focuses on how to debug a user-provided test execution in which performance problems already manifest. It remains largely unknown how to effectively find performance bugs before software release. As a result, performance bugs often escape to production runs, hurting software reliability and user experience. This paper describes PerfBlower, a general performance testing framework that allows developers to quickly test Java programs to find memory-related performance problems. PerfBlower provides (1) a novel specification language ISL to describe a general class of performance problems that have observable symptoms; (2) an automated test oracle via \emph{virtual amplification}; and (3) precise reference-path-based diagnostic information via object mirroring. Using this framework, we have amplified three different types of problems. Our experimental results demonstrate that (1) ISL is expressive enough to describe various memory-related performance problems; (2) PerfBlower successfully distinguishes executions with and without problems; 8 unknown problems are quickly discovered under small workloads; and (3) PerfBlower outperforms existing detectors and does not miss any bugs studied before in the literature. Lu Fang 0003, Liang Dou 0001, Guoqing Harry Xu |
ECOOP | 1 |
| 2015 | Interruptible tasks: treating memory pressure as interrupts for highly scalable data-parallel programsabstractReal-world data-parallel programs commonly suffer from great memory pressure, especially when they are executed to process large datasets. Memory problems lead to excessive GC effort and out-of-memory errors, significantly hurting system performance and scalability. This paper proposes a systematic approach that can help data-parallel tasks survive memory pressure, improving their performance and scalability without needing any manual effort to tune system parameters. Our approach advocates interruptible task (ITask), a new type of data-parallel tasks that can be interrupted upon memory pressure---with part or all of their used memory reclaimed---and resumed when the pressure goes away. Lu Fang 0003, Khanh Nguyen 0001, Guoqing Harry Xu, Brian Demsky, Shan Lu 0001 |
SOSP | 1 |
| 2015 | Speculative region-based memory management for big data systemsabstractMost real-world Big Data systems are written in managed languages. These systems suffer from severe memory problems due to the massive volumes of objects created to process input data. Allocating and deallocating a sea of objects puts a severe strain on the garbage collector, leading to excessive GC efforts and/or out-of-memory crashes. Region-based memory management has been recently shown to be effective to reduce GC costs for Big Data systems. However, all existing region-based techniques require significant user annotations, resulting in limited usefulness and practicality. This paper reports an ongoing project, aiming to design and implement a novel speculative region-based technique that requires only minimum user involvement. In our system, objects are allocated speculatively into their respective regions and promoted into the heap if needed. We develop an object promotion algorithm that scans regions for only a small number of times, which will hopefully lead to significantly improved memory management efficiency. We also present an OpenJDK-based implementation plan and an evaluation plan. Khanh Nguyen 0001, Lu Fang 0003, Guoqing Harry Xu, Brian Demsky |
PLOS@SOSP | 2 |