Determining configuration parameter dependencies via analysis of configuration data from multi-tiered enterprise applications
Multi-tiered enterprise applications, which comprise of many (heterogeneous and possibly loosely coupled) components at various layers of the IT stack, typically have configuration dependencies between these different components. A change in the value of a configuration parameter of a component may require changing one or more parameters of other components to the same value. Keeping track of these dependencies is not a mean task as they are typically cross product and requires in-depth product/system knowledge.
 Our aim in this paper is to introduce techniques that do not require a system administrator to have in-depth knowledge about a multi-tiered system in order to be aware of the possible configuration dependencies in a system. Our focus in this paper does not include, for example, the performance-related dependencies such as the one that exists between the maximum number of threads and session timeout in an Apache server. In this paper we provide a method for analyzing existing deployments (that are functioning properly) to infer the configuration dependencies in a probabilistic sense. Firstly, we analyze the values of the configuration parameters of the various components to determine a candidate list of dependencies which includes both true and false ones. We then provide a heuristic that makes use of the statistics on the parameter name and value strings, computed from the configuration data and also the information on the web, to compute a rank for a dependency to be true. We provide a rank-ordered list of dependencies so that administrators can consult it to quickly and systematically identify the true dependencies. To complement our proposed approach we have performed an extensive study and experimentation to show the efficacy of our technique on data from two real-world solutions.