Configuration Spaces

Redefining Configuration Spaces

A configuration space is the space of all possible settings for all possible configuration parameters; part of the difficulty of working with current practices is that these configuration spaces are large in number, often conflicted and developers need somehow find a way to set the configuration so that the system does what it’s supposed to do.

Traditional configuration is setting values for parameters or setting rules as to how to manage parameters in a statically configured system. These systems also rely upon feedback and different states to adjust the system if certain anticipated conditions occur. 

In the world of Self-Aware™ computing, the configuration space doesn’t change. It’s still there. It’s just that the configuration parameters that comprise that space become first class objects and under dynamic system software control. 

And the developer, instead of having to pick a specific value for each of those configuration parameters a priori, can deploy Config’s computational methods to automatically configure those parameters based on whether the goals are actually being met at each instant or not. 

Conceptually, this inevitably leads to the conclusion that the best configuration space is one that is a hundred percent variable and each configuration parameter is set as needed under dynamic software control. The developer’s responsibility can now shift to establish the most performative goals, rather than having to set values for every configuration parameter to cover all future events, anticipated or experienced.

Configuration is About Goals

Using goals to manipulate a configuration space also has the impact to re-define what a configuration space even is. For example, consider building hierarchical system where different modules within the system expose goals as their interface, making the overall goal of a lower-level model become configuration parameters for a higher-level module. In this way, each module’s parameters are configured by its specific goals at the interface and these hierarchical module interface goals become configuration parameters for higher level components.  

The workload at each interface has control goals and the systems active at those interfaces have variable configuration parameters. Configuration now takes on the meaning of anything in the system that is variable and is responsive to having values set by goals under software control, dynamically responsive to workload conditions. 

(For examples, think of a cluster of servers in a data center as a configuration node, or even a specific data center itself in a mesh network of geographically dispersed hyperscale facilities, or a specific generation facility in a grid network of distribution assets to manage client SLAs.)

This re-characterization creates enormous opportunity for using AI and Self-Aware computational methods to collect data to reason about the inter-relationship of workloads, goals and system resources during development and operation.

“Goal sciences” now can advance configuration practices to address complexity with powerful Self-Aware computing tools for developers and operators.


Being Self-Aware is Always Better
Than Being Un-Aware.

Reason and Adapt

Dynamically Configure

Optimize to Goals