kirancodes.me
To Proof Maintenance & Beyond!

Static detection of resource contention problems in server-side scripts

Yunhui Zheng, Xiangyu Zhang

Abstract

With modern multi-core architectures, web applications are usually configured to serve multiple requests simultaneously by spawning multiple instances. These instances may access the same external resources such as database tables and files. Such contentions may become severe during peak time, leading to violations of atomic business logic. In this paper, we propose a novel static analysis that detects atomicity violations of external operations for server side scripts. The analysis differs from traditional atomicity violation detection techniques by focusing on external resources instead of shared memory. It consists of three components. The first one is an interprocedural and path-sensitive resource identity analysis that determines whether multiple operations access the same external resource, which is critical to identifying contentions. The second component infers pairs of external operations that should be executed atomically. Finally, violations are detected by reasoning about serializability of interleaved atomic pairs. Experimental results show that the analysis is highly effective in detecting atomicity violations in real-world web apps.

BibTeX
@inproceedings{Zheng-Zhang:ICSE12,
  author    = {Yunhui Zheng and
               Xiangyu Zhang},
  title     = {Static detection of resource contention problems in server-side scripts},
  booktitle = {ICSE},
  pages     = {584--594},
  publisher = {{IEEE} Computer Society},
  year      = {2012},
}

Related papers