# An Uncertainty-Driven Proactive Self-Healing Model for
## 2 Preliminaries and Scenario Description
### Scenario Description  
We consider a set of nodes \(N=\left\{G_{1},G_{2},\,\ldots,\,G_{n}\right\}\) which interact between themselves and with their environment to collect data and execute various processing activities, i.e., tasks. The collected data that every \(G_{i}\) locally stores are in the form of d-dimensional vectors i.e., \(X^{t}=[x_{1}^{t},x_{2}^{t},\,\ldots,\,x_{d}^{t}]\) where the index \(t\) depicts the time instance when \(G_{i}\) receives them. This means that the recording of \(X^{t}\) at the assumed discrete time instances \(t\in\left\{1,2,3,\ldots\right\}\) defines a time series dataset upon which \(G_{i}\) may be requested to execute various processing activities. Those requests can be initiated by users or applications, indicating the execution of tasks upon the collected data and the extraction of knowledge. Apparently, for realizing the desired processing activities, \(G_{i}\) adopts the local resources to perform the requested execution of tasks and store the outcomes. An additional step involves the communication with the requestor to deliver the final results.  
We assume that \(G_{i}\) maintains an M/M/1/K queue; i.e., we consider a limited capacity of the local queue where the incoming tasks are placed before the local resources are allocated for their execution [18]. \(G_{i}\) serves the incoming requests for processing in a First-Come-First-Served (FCFS) order to apply 'fairness' in the allocation of resources. However, there are multiple scenarios where some tasks could have higher priority than others, especially when we consider that \(G_{i}\) should be able to support real-time applications. For instance, imagine that \(G_{i}\) is an edge node and should respond to a query that demands information about the traffic in a specific sub-area. \(G_{i}\) should immediately respond to this query; otherwise, any delay may cause bottlenecks in the decision making, relying on the outcomes of the processing with clear potential negative consequences in the execution of the supported applications.  
\(G_{i}\) does not want to be overloaded and has to offload the incoming tasks to its peers, causing additional delays in the provision of results. The research question that governs this paper is to assist \(G_{i}\) in maintaining the size of the queue below a pre-defined threshold \(\theta\), leaving space for hosting high-priority tasks. A monitoring process should be applied that will result in alerts when there is an increased risk of \(G_{i}\) being overloaded; i.e., the number of tasks in the queue is above \(\theta\). The discussed alerts will, consequently, be adopted to 'fire' a task management mechanism locally. Obviously, the scenario of having \(G_{i}\) overloaded is met based on the rate of receiving the incoming tasks and the rate of executing them. In dynamic environments, these two rates are continually updated, especially when we consider bursts of tasks reported in \(G_{i}\). We propose the adoption of an uncertainty-based reasoning mechanism to manage the uncertainty in the detection of \(G_{i}\) as overloaded and the utilization of the aforementioned task management model to secure that there is always room for hosting high-priority tasks in \(G_{i}\) (the number of tasks in the queue should be less than \(\theta\)).  
A pictorial representation of the operation of an edge node in our scenario can been found in Figure 1.  
The proposed model is easy to implement in real systems. Initially, the adoption of a component is required, which will have the role of decomposing the tasks into their characteristics. Then, the information will pass through the module we created in order to facilitate the management of the tasks, as shown in Figure 2.  
Figure 1: Proposed model adapted to an edge node.  
Figure 2: Components that constitute UPSHM.