Efficient Utility-Driven Self-Healing Employing Adaptation Rules for - - PowerPoint PPT Presentation

efficient utility driven self healing employing
SMART_READER_LITE
LIVE PREVIEW

Efficient Utility-Driven Self-Healing Employing Adaptation Rules for - - PowerPoint PPT Presentation

Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures Sona Ghahremani & Holger Giese, Thomas Vogel Hasso Plattner Institute, Potsdam, Germany sona.ghahremani@hpi.de Overview Direction


slide-1
SLIDE 1

Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures

Sona Ghahremani

&

Holger Giese, Thomas Vogel

Hasso Plattner Institute, Potsdam, Germany

sona.ghahremani@hpi.de

slide-2
SLIDE 2

■ Direction □ Focusing on self-healing among all the self-* properties □ Targeting architectural self-healing □ Linking adaptation rules to utility □ Defining architectural utility for dynamic architectures ■ Implementation □ MAPE-K Feedback loop maintains a runtime model representing the architecture of the system under adaptation □ Employing MDE techniques such as model transformation ■ Evaluation □ mRUBiS as case study: an online marketplace modeled after eBay [RUBiS]

2

Overview

slide-3
SLIDE 3

■ Sequence of repair steps -> failure free solution space ■ Final configuration with highest utility ■ Optimal order of repairs-> highest Reward

Motivation: Linking Adaptation Rules to Utility

Repair Steps

highest utility 3

A B

max utility

A C B

Utility

Time ti

C

slide-4
SLIDE 4

Optimal order

  • f repairs

Scalable Maximum Utility Expressiveness

Motivation: Combining Two Ends of the Spectrum

✔ ✔ ✔ ✔ ✔ ✔

+

4

✘ ✘ ✘

+

− +/−

max utility

A C B

Utility

Time ti

Optimization

  • based (C)

Rule

  • based (A)
slide-5
SLIDE 5

■ A1: Considering only repair rules that are triggered by failures in contrast to optimization rules ■ A2: The repair rules are effective in healing the failures and therefore executing them achieves the intended improvement of the utility ■ A3: Rules are independent of each other with respect to their applicability and their impacts on the overall utility

5

Assumptions

slide-6
SLIDE 6

Defining Pattern-based Utility

6

Zbay: Architecture

utility := U1()+ U1() + ...

s2:Shop

state = STARTED criticality = 7

authenticationS2 :Component

state = STARTED criticality = 3

reputationS2 :Component

utility := U1() + U1() +...

s1:Shop

state = STARTED criticality = 2

reputationS1 :Component

state = STARTED criticality = 5

authenticationS1 :Component

Negative Architectural Utility Pattern

shop :Shop

utility:= utility – U-(Component)

providedInterface :ProvidedInterface [self.exceptions->size() >=5] component :Component [self.state=STARTED] criticality component :Component [self.state=STARTED] criticality shop :Shop

utility:= utility + U+(Component) Positive Architectural Utility Pattern

authenticationS2 :Component [state=STARTED] Criticality = 5 s2:Shop component :Component [state=STARTED] Criticality = 1 newShop:Shop providedInterface :ProvidedInterface self.exceptions-> size() =5 Zbay: Architecture

U+/-(component)= component.criticality X component.type.reliability X component.connectivity

slide-7
SLIDE 7

Monitor Execute Plan Analyze

Monitor the RTM

Mark all the Pi s in the RTM

Detected new

  • ccurring pattern Pi

No new negative pattern is detected

Execute the rules in the given

  • rder

Monitor

7 Mark all the rules that resolve the marked patterns Order the selected rules Select best rule for each pattern

slide-8
SLIDE 8

Monitor

Execute Plan Analyze

Monitor the RTM Mark all the Pi s in the RTM

Detected new

  • ccurring

pattern Pi No new negative pattern is detected Execute the rules in the given

  • rder

Analyze

8

Mark all the rules that resolve the marked patterns Order the selected rules Select best rule for each pattern

slide-9
SLIDE 9

Analyzing the Patterns

9 piRS1 :ProvidedInterface self.exceptions->size()=5

Zbay: Architecture

utility := U1()+ U1() + ...

s2:Shop

state = STARTED criticality = 7

authenticationS2 :Component

state = STARTED criticality = 3

reputationS2 :Component

utility := U1() + U1() +...

s1:Shop

state = STARTED criticality = 2

reputationS1 :Component

state = STARTED criticality = 5

authenticationS1 :Component

piRS2 :ProvidedInterface self.exceptions->size()=7 piAS2 :ProvidedInterface self.exceptions->size()=2

A B

shop :Shop

utility:= utility – U-(Component)

providedInterface :ProvidedInterface [self.failures->size()>=5] component :Component [self.state=STARTED] criticality

CF2A CF2B

slide-10
SLIDE 10

Monitor

Execute Plan

Analyze Monitor the RTM

Mark all the Pi s in the RTM

Detected new

  • ccurring pattern Pi

No new negative pattern is detected

Mark all the rules that resolve the marked patterns

Execute the rules in the given

  • rder

Plan

10

Order the selected rules Select best rule for each pattern

slide-11
SLIDE 11

Two Step Planning

11

CF2A CF2B

Rule1 Costs =CA1() UtilityIncrease =UA1() Rulek Costs =CAk() UtilityIncrease =UAk()

Rule1 Costs =CB1() UtilityIncrease =UB1() Rulek Costs =CBk() UtilityIncrease =UBk()

Select the rule which has the max UtilityIncrease Select the rule which has the max UtilityIncrease

1. 2.

Order the selected Rules

CA () UAmax () CB () UBmax ()

> … >

slide-12
SLIDE 12

Monitor

Execute Plan

Analyze Monitor the RTM

Mark all the Pi s in the RTM

Detected new

  • ccurring pattern Pi

No new pattern is detected

Execute the rules in the given order

Execute

12

Mark all the rules that resolve the marked patterns Order the selected rules Select the best rule for each pattern

slide-13
SLIDE 13

Executing the Rules

providedInterface :ProvidedInterface self.exceptions->size()=5

Zbay: Architecture

utility := U1()+ U1() + ...

s2:Shop

state = STARTED criticality = 7

authenticationS2 :Component

state = STARTED criticality = 3

reputationS2 :Component

utility := U1() + U1() +...

s1:Shop

state = STARTED criticality = 2

reputationS1 :Component

state = STARTED criticality = 5

authenticationS1 :Component

providedInterface :ProvidedInterface [self.failures-> size()==0] providedInterface :ProvidedInterface [self.failures-> size()==2]

cf2:CF2 restartComponent :RestartComponent

handles

component :Component

affectedComponent

Restart component affected by CF2

state := DEPLOYED

component :Component

Stop component

state := STARTED

component :Component

Start component Remove failures

component :Component providedInterface :ProvidedInterface

providedInterfaces

failures :Failures

<<destroy>> failures

Remove annotations DEPLOYED STARTED

13

slide-14
SLIDE 14

What do We Evaluate?

14

Monitor

Plan

Analyze Monitor the RTM

Mark all the Pi s in the RTM

Detected new

  • ccurring pattern Pi

No new negative pattern is detected

Mark all the rules that resolve the marked patterns

Execute the rules in the given

  • rder

Order the selected rules Select best rule for each pattern

Execute Monitor Execute Plan Analyze

Monitor the RTM Mark all the Pi s in the RTM

Detected new

  • ccurring pattern

Pi No new negative pattern is detected

Mark all the rules that resolve the marked patterns Order the selected rules Execute the rules in the given

  • rder

Select best rule for each pattern

Variants:

■ Rule-based Approach: A static rule-based

approach employing static priorities and assignments without any utility function

Optimization-based Approach: IBM ILOG CPLEX constraint solver optimizing an

  • bjective function at runtime

[IBM ILoG] ■

Utility-driven Approach (our approach): computing the impact of different adaptation rules at runtime using a utility function

slide-15
SLIDE 15

Scalability of the Approaches

15

Optimization

  • based

Rule

  • based

U-driven

Optimal order

  • f changes

Scalable Maximum Utility

✘ ✔

? ? ✔ ✔ ✘ ✘

(ms)

Number of Components

1 Failure 10 Failure 100 Failure 1000 Failure

Rule- based U- driven Opt.- based Rule- based U- driven Opt.- based Rule- based U- driven Opt.- based Rule- based U- driven Opt.- based

18 0.76 0.89 5.02 10.37 14.36 56.68

NA NA NA NA NA NA

180 0.68 0.89 5.01 9.71 13.58 59.07 14.22 17.70 219.54

NA NA NA

1800 0.61 0.74 4.83 10.60 13.47 58.24 13.82 26.65 211.09 54.50 60.09 3216.60 18000 0.65 0.71 4.90 10.14 13.87 71.93 21.80 26.38 271.51 127.80 171.31 3611.95

slide-16
SLIDE 16

Optimization

  • based

Rule

  • based

U-driven

Optimal order

  • f repairs

Scalable Maximum Utility

Lost Reward Due to Overhead

16975 16960 16945 16940

U-driven Optimization-based Restart Restart HW Redeployment

Loss of Optimization

  • based

Utility

Time (ms)

50 100 150 200 250 16

?

✘ ✔ ✔ ✘ ✘

slide-17
SLIDE 17

Optimization

  • based

Rule

  • based

U-driven

Optimal order

  • f repairs

Scalable Maximum Utility

Lost Reward Due to Non-optimal Selection of Repair Steps [Wrong Ordering of Changes]

U-driven Rule-based

Loss of Rule-based Loss of U-driven

Time (ms)

16975 16960 16931 16928

Utility

50 100 150 200

Replace HW-Redeployment LW-Redeployment Restart Restart Restart

17

✔ ✔ ✔

✘ ✔ ✔ ✘ ✘

slide-18
SLIDE 18

Optimization

  • based

Rule

  • based

U-driven

Optimal order of repairs Scalable Maximum Utility Expressiveness

■ Conclusion: □ Defined utility functions for dynamic architectures and linking them to the adaptation rules □ Proposed a novel approach to improve the self-healing reward while reducing the computation efforts for planning self-adaptation □ Achieved optimal adaptation decisions online within a reasonable time ■ Future work: □ Weakening some of the assumptions made such as including conflicts among issues and rules □ Support more complex class of utility functions such as non- linear utility functions

Conclusion and Future Work

18

✔ ✔

+

✘ ✘ −

✔ ✔ ✔

+/−

slide-19
SLIDE 19

END

slide-20
SLIDE 20

Overview of the Approach

20

Monitor Execute Plan Analyze

Monitor the RTM Mark all the Pi s in the RTM

Detected new

  • ccurring pattern

Pi No new pattern is detected

Mark all the rules that resolve the marked patterns Order the selected rules Execute the rules in the given

  • rder

Select best rule for each pattern

slide-21
SLIDE 21

Utility of Different Self-healing Approaches in Presence of Different Failure Profile Models

21

Single Uniform Burst BigBurst Static

1.94E+09 1.93E+09 1.79E+09 1.82E+09

Solver

1.99E+09 1.94E+09 1.82E+09 1.81E+09

U-driven

1.99E+09 1.95E+09 1.83E+09 1.84E+09

15<Number of Failures <40 150<Number of Failures <600 Number of Failures = 1 1<Number of Failures <500