Static analysis of cloud elasticity - Garcia, Abel; Laneve, Cosimo; Lienhardt, Michael (Science of computer programming, 2017)
We propose a static analysis technique that computes upper bounds of virtual machine usages in a concurrent language with explicit acquire and release operations of virtual machines. In our language it is possible to delegate other (ad-hoc or third party) concurrent code to release virtual machines (by passing them as arguments of invocations). Our technique is modular and consists of (i) a type system associating programs with behavioural types that record relevant information for resource usage (creations, releases, and concurrent operations), (ii) a translation function that takes behavioural types and returns cost equations, and (iii) an automatic off-the-shelf solver for the cost equations. A soundness proof of the type system establishes the correctness of our technique with respect to the cost equations. We have experimentally evaluated our technique using a cost analysis solver and we report some results. •A technique for the static analysis of resource utilization is proposed.•The analysis relies on a static type system that records program's resources behaviour.•The proposed approach supports concurrency and explicit release operations.•A proof of soundness of the proposed type system and of the analysis is provided.