2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) (2013)
San Francisco, CA, USA
May 20, 2013 to May 21, 2013
Wei-Chih Huang , Department of Computing, Imperial College London, South Kensington Campus, London, SW7 2AZ, United Kingdom
William J. Knottenbelt , Department of Computing, Imperial College London, South Kensington Campus, London, SW7 2AZ, United Kingdom
Despite advances in operating system resource management and the availability of standardised container libraries, developing scalable high-capacity applications remains a nontrivial endeavour. Naïve implementations of fundamental algorithms often rapidly exhaust system resources under heavy load. Resolving this via manual refactoring is usually possible but requires significant programmer effort, an effort which often has to be repeated in order to meet the resource constraints encountered in each different execution environment. This paper proposes a library of self-adaptive containers which provide a ready route to developing scalable applications with low programmer overhead. Given an execution environment, the library flexibly adapts its use of data structures in an effort to meet programmer-specified service level objectives. The library features a mechanism for tighter functionality specification than that provided by standard container libraries. This enables greater scope for efficiency optimisations, including the exploitation of probabilistic data structures and out-of-core storage. We have demonstrated the capabilities of the proposed library through a prototype implementation in C++. We show that when a Breadth First Search explicit state space exploration algorithm is executed, using the proposed library reduces insertion time by 68.5%, search time by 86.1%, and primary memory usage by 90.1% compared with the Standard Template Library.
Containers, Libraries, Data structures, Probabilistic logic, Software, Reliability, Time factors
W. Huang and W. J. Knottenbelt, "Self-adaptive containers: Building resource-efficient applications with low programmer overhead," 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), San Francisco, CA, USA, 2013, pp. 123-132.