Language and Compiler Support for Adaptive Applications

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1392959

1. 소개
adaptive or autonomic computing에 대한 관심이 증가하고 있음.

아웃풋의 퀄리티가 유연성을 가지는 많은 어플리케이션이 있음.(상황에 따라 화질이 않좋아지는 등의..)
또한 리소스 제한이 매우 결정적인 때가 있음(타임 리밋, 배터리 리밋 등..). 
이럴 경우에도사용자는 가장 정확하고 좋은 아웃풋을 받기를 원함.
이 논문에서는 유연성을 부여하기 위한 어플에 특화된 언어 모델을 제안할 것임.
주요 아이디어는 프로그래머가 adaptation parameter를 정의하도록 하는 것임.
감시가 필요한 constraint도 정의되어야 함.
Java의 data parallel dialect 기반, 특별한 클래스를 정의하고, 모든 어댑티브 파트가
이 클래스를 확장시킬 것임.

이를 위해 컴파일 타임 분석과 런타임 피드백이 통합된 하이브리드 방법론을 사용할 것임.
우리 연구는 constraint로 실행 시간을 잡았음. 
프로그램 분석 알고리즘은 어댑션 파라메터와 다른 런타임 상수 값의 함수로써
 어플 컴포넌트의 실행시간을 기술함.
이러한 상수들은 어플의 첫번째 실행에서 결정됨.
이러한 상수가 한번 알려지면 어댑테이션 파라메터가 수정될 수 있다는 것을 알아야함.

어댑테이션을 위한 우리의 방법은 분산 또는 그리드 환경에서 실행되는
데이터 집중적인 어플에서 구현되고 평가되었음. 

이 논문의 주요 업적은 다음과 같음.
- 유연성이 필요한 출력에 필요한 어플케이션 클래스를 확인하고
     adaptation parameters를 통해 이를 노출시킬 수 있음

- 아주 작은 언어 확장을 디자인함. 이를 통해 어댑티브 특성을 쉽게 노출할 수 있음.

- static 분석과 런타임 정보를 통합하여 프로그램 어뎁테이션을 추가하는 좋은 방법을 제안

- 새로운 static 분석 알고리즘 소개. 프로그램 컴포넌트의 실행시간을 
   어댑테이션 파라메터와 다른 런타임 constant로 이용.

- 이런 방법을 데이터 집중적인 그리드 기반 어플에 구현하고 평가. 결과를 보여줌.

2. 배경
2.1 타겟 어플리케이션
다음과 같은 어플을 고려.
- 비디오/오디오 스트리밍 어플
- 리얼타임 비주얼라이제이션
- Hot-list Query Processing
- 이미지 프로세싱 : 이미지 퀄리티가 퍼포먼스와 트레이드 오프 관계
- 시뮬레이션 데이터에서 데이터 마이닝/분석

2.2 Coarse-Grained Pipelined Parallel Execution Model
우리의 언어/컴파일러 모델은 데이터 집중적인 그리드 기반 어플에 적용됨.
여기서 우리가 사용할 coarse-grained pipelined parallel execution model을 소개할 것임

이 모델에서 어플과 관련된 프로세싱은 각 스테이지에서 처리됨.
이렇나 스테이지는 컴퓨팅 유닛 파이프라인상에서 실행됨.
각 유닛은 이전 스테이지에서 받아온 intermediate 결과를 처리함. 

모든 분석이 사이트 호스팅에서 실행되는 것은 불가능함. 
이와 유사하게 네트워킹과 스토리지 제한은 모든 데이터를 하나의 사이트에 
다운받는것을 불가능하게 만듬. 따라서 어플은 여러 스테이지에서 수행되도록 해야함.
마지막 스테이지는 사용자의 로컬 머신에서 실행됨.

3. 언어 확장
3.1 Data Parallel Constructs
우리가 사용하는 표현형식은 Titanium과 HPC++과 같은 객체지향 패러렐 시스템에서 빌려왔다.
- Rectdomain은 같은 타입 오브젝트의 콜렉션이다.
   각 오브젝트는 pre-specified rectilinear에 속하는 coordinate를 가지고 있다.

- foreach 루프는 rectdomain내의 오브젝트를 iterate한다.
   이터레이션의 순서가 컴퓨테이션 결과에 영향을 미치지 않는 특성을 가진다,.

by Pragmatic | 2011/03/16 20:36 | 트랙백 | 덧글(0)

Evaluating the Effectiveness of the Rainbow Self-Adaptive System

-----------------------------------------------------------
Znn.com이라는 사이트를 만들고 레인보우 시스템을 적용.
레인보우 시스템의 효율성을 검증하기 위해 
구현 하는데 걸리는 노력, 리소스 오버헤드, 어댑테이션 정도를 측정.
레인보우가 좋은 어댑테이션이라는 것을 증명하고,
좋은 벤치마크의 기준을 제시함.
-----------------------------------------------------------

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5069082

서론
    레인보우 시스템을 Znn.com에 적용해봤음.
    세가지 측면에서 효율성을 평가: 1. 퀄리티 특성이 유지되는지, 런타임 오버헤드, 엔지니어링 effort
    Znn.com을 만들고 다른 사람들도 사용할 수 있는 평가툴을 만들었음.

1. 소개
     셀프 어댑티브에 관한 요구가 증가함. 그러나 구축하기가 매우 비쌈.
    
    레인보우의 효율성을 두가지 방법으로 평가했음
        (1) 레인보우가 퀄리티와 비지니스 목표를 만족하기 위해 얼마나 효율적인가?
        (2) 레인보우를 이용하여 어댑테이션을 엔지니어링 하기 위해 얼마나 많은 노력이 필요한가?
    평가를 위해 웹기반 시스템 Znn.com을 만들었음.
    평가를 위해 툴도 개발했음
        (1) Znn.com을 모니터링하고 변경을 일으키기 위해
        (2) 레인보우에 플러그인 될 인터페이스를 제공하기 위해
        (3) 문제를 일으킬 환경을 생산하기 위해
        (4) Znn.com의 동작을 기록하기 위해
    레인보우가 어댑테이션에 효율적임을 보여줄 수 있었음.

2. 관련 연구
    생략

3. 레인보우 approach
    레인보우는 비용 효율적인 셀프 어댑테이션을 위해 두가지 방법에 포커스를 둠.
        - 엔지니어링 노력을 줄이고, 어댑테이션 지식을 명시적인 표현.
    타겟 시스템, 실행 환경 을 모니터링 하고 아키텍쳐 모델 내에서 관찰에 반응,
    개선을 위한 기회를 탐지, 어뎁테이션 코스를 결정, 변경을 실행(act)하기위한 프레임웍을 제공함
    일반적이고, 재사용 가능한 인프라 스트럭쳐를 제공. 다양한 분야의 시스템에 적용할 수 있도록 
    명시적인 커스터마이제이션 포인트를 제공. 유용한 추상화를 제공.
    어뎁테이션을 자동화하기위해 Stitch라는 언어를 제공함.
    strategies, tactics, poerators와 같은 하이레벨 어뎁테이션 컨셉을 이용해 인간 어뎁테이션 지식을 표현함.

    3.1 커스텀할 수 있는 셀프 어댑테이션 프레임웍
        레인보우 프레임웍은 컴포넌트-and-커넥터 아키텍쳐를 사용
        Translation Infrastructure – probes and gauges- 내에서 모니터링 매터니즘은 실행중인 타겟 시스템을
        모니터링하고 Model Manager에 의해 관리되는 아키텍처 모델의 특성을 업데이트함.
        Architecture Evaluator는 시스템이 허용 범위 안에서 운영되고 있는지 확인하기 위해 모델을 평가함. 
        Evaluator가 허용 범위를 벋어났다고 판단하면 Adaptation Manager가 어댑테이션 프로세스를 초기화.
        Adaptation Manager가 현재 상태에 기반하여 적절한 전략을 선택.
        Strategy Executor가 시스템 레벨 이펙터를 통해 전략을 실행.
        레인보우는 다른 도메인에 커스텀이 가능함

        커스텀 가능한 셀프 어댑테이션 프레임웍은 여러 장점을 가짐
            - 재사용가능한 인프라 스트럭쳐 : 개발 비용 감소
            - 모듈화된 어뎁테이션 정책 언어는 어댑테이션 concern을 분리된 것으로 고려할 수 있게 해줌.

        레인보우 프레임웍은 자바로 만들어졌음. translation layer 아래의 엘리먼트들은 언어나 스크립트로 만들어졌지만 
        프로브와 이펙텨의 커뮤니케이션 프로토콜을 따름. 런타임에 레인보우 마스터는 Architectural-Layer
        엘리먼트를 인스턴스화함. Rainbow Delegate가 플로브, 게이지, 이펙터를 관리하기 위해 
        시스템의 각 컴퓨팅 노드에 디플로이됨. 이벤트 버스는 Marster와 Delegate 사이의 통신을 조정해줌.

    3.2 Znn.com 시스템
        cnn.com과 같은 뉴스 웹사이트. N-tier를 만족하는 웹기반 클라이언트-서버 시스템임. 그림2 참조.
        로드 밸런싱을 위해 로드 밸런서를 사용.

        퀄리티 목표는 서버 풀의 비용을 특정 운영 예산내에서 유지하면서,
        적절한 응답시간내에 사용자에게 뉴스 컨텐츠를 제공하는 것임.
        때때로, 매우 유명한 이벤트때문에 Znn.com은 뉴스 리퀘스트가 급격히 증가하여 최대 풀 사이즈를 넘어버림.
        이런 피크타임에는 문자 컨텐츠만 제공함. 
        한마디로 세가지 퀄리티 목표는 (a) 퍼포먼스, (b) 비용, (c) 컨텐츠 엄수임

        퍼포먼스 분석은 응답시간, 서버 로드, 커넥션 대역폭을 모니터링.
        비용 분석은 실행중인 서버의 갯수와 일치.
        컨텐츠 엄수를 위해 풀 멀티미디어부터 텍스트까지 컨텐츠 범위의 레벨을 만들었음.(high, medium, low)
        N-tier-client-server 아키텍쳐 스타일은 다음을 포함
            • Types: ClientT, ServerT, ProxyT, HttpConnT
            • Properties: ClientT.experRespTime, ServerT.cost /
                load / fidelity, HttpConnT.bandwidth
            • Operators: ServerT.activate()    / .deactivate() / .setFidelity(level : int)

        setFidelity() 함수는 컨텐츠 레벨을 설정함.

        응답시간이 높으면, 목표 A는 예산내라면  Znn.com이 서버 풀 사이즈를 늘려야 한다고 제안.
예산밖이라면 Znn.com이 문자 모델로 전환. 응답시간이 낮으면 목표 C는 서버 풀사이즈를 낮춤.
예산이 많이 남으면 멀티미디어 모드로 변경.
이러한 방법으로 다양한 목표의 트레이드 오프를 만족시킴.

이러한 전략으로부터 네가지 어댑션 전략을 정의했음.
- SimpleReduceResponseTime : 응답시간이 길어지면 컨텐츠 피델리티를 한단계 낮춤.
- SmarterReduceResponseTime: 클라이언트가 많아지면, 서버를 추가함. 그 후 피델리티를 낮춤.
- ReduceOverallCost : 전체 서버 비용이 임계치를 넘으면, 코스트가 임계치 아래로 내려갈때까지 서버를 끔
- ImproveOverallFidelity : 평균 컨텐츠 피델리티가 임계치 아래로 떨어지면, 모든 서버의 피델리티를 두번까지 올림.

4. Znn.com 평가
레인보우의 효율성을 측정하는 것은 다음을 보여주는 것을 요구함
1. 레인보우-커스터마이제이션된 타겟 시스템은 전체적인 효율이 증가되도록 셀프 어댑션 된다.
2. 셀프 어댑테이션은 낮은 런타임 리소스 오버헤드를 유발한다.
3. 타겟 시스템에 레인보우를 적용하기 위해 필요한 노력은 처음부터 만드는 것보다 훨씬 더 적어야 한다.

4.1 Show that Znn.com Is Self-Adaptive
실험을 위해 웹사이트를 만들었음. “Slashdot-effect"를 Znn.com에 시험해볼 것임.

다섯대의 서버, 두대의 클라이언트, 한대가 밸런서.
라운드 로빈으로 로드 밸런싱 수행

“Slashdot-effect" 효과를 일으키는 workload를 디자인.
1. 1 minute of low activity, 6 unique visits/min 2. 5 minutes of sharp rise in requests, ramping up t600 visits/min (+120 visits/min/min) 3. 18 minutes of peak in requests, sustained at 600 visits/min 4. 36 minutes of linear decrease, ramp down to 60 visits/min (-15 visits/min/min)

이를 JMeter로 구현하여 두대의 컴퓨터에 탑재. 레인보우 어댑션없이 돌아가도록하는 것돠
어댑션과 함께 돌아가도록 시험함.

매 시험마다 샘플수, 응답 지연, 리퀘스트 throughtput 등을 기록.

그림 4는 두 시험 결과를 보여주는 그래프임.
어댑테이션이 적용된 실험이 다른것보다 낮은 레이턴시와 높은 throughtput을 보여줌.
따라서 레인보우가 효율적이라는 것을 알 수 있음.

4.2 Show that Resource Overhead Is Low
리소스 오버헤드를 CPU 이용률로 측정. 2% 미만 사용. 매우 낮음

4.3 Show Low Customization Effort
적용하는데 93시간이 걸림. 커스터마이제이션 노력이 매우 적음.

처음부터 만드는것과 비교하기 위해 개발 태스크를 나눔 - 3개의 개발 태스크와 1개의 evolution 태스크.
: 도메인 분석, 모델 캡쳐, 디자인과 구현, 업데이트와 모디피케이션
각 태스트를 완료하는데 걸리는 시간을 측정

중략
결론적으로 5% 미만의 리소스 오베헤드가 발생함. 매우 낮은 수준임

생략..

        

by Pragmatic | 2011/03/15 20:10 | 트랙백 | 덧글(0)

CEYLON : A service-oriented framework for building autonomic managers

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5457824

1. 소개
Autonomic 컴퓨팅 매니지먼트는 매우 복잡함. 목표 충돌, 구현 복잡 등..
많은 연구가 있었으나 완전하지 못함. 
중복 적용이 어렵고, 테스트, 재사용, 큰 스케일로 확대가 어려움.
잘 증명된 소프트웨어 공학 기법을 사용해야함.

중간 생략....

SOC 관련 설명 생략...

autonomic management 어플 개발을 위해 서비스 지향 방법의 채택을 옹호함.
Ceylon이라 명명된 재사용 가능한 프레임웍을 제공.

2. 제안
1. 전체적인 프리젠테이션
loosely-coupled serviceoriented management components의 autonomic manager를 구현.
각 매니지먼트 컴포넌트는 간단한 관리자적 태스크를 구현.
(파라메터 모니터링, 문제 타입 검출, 솔루션 플래닝, 리소스 수정등)
컴포넌트간 통신은 비동기식이며 topic-based.
컴포넌트의 실행은 토픽의 집합으로부터의 이벤트에 의해 시작됨.
컴포넌트의 실행은 토픽 기반 이벤트들을 발생시킴.

간단한 관리자적 태스크 통합을 통해 복잡한 관리 전략이 개발됨.
문제 해결 상태나 이전 관리 컴포넌트의 성능들을 토대로
다른 컴포넌트가 선택되고 연결됨.

그림 1에서 보듯이 2단계 아키텍쳐로 구성되어 있음.
첫번째 레이어 는 리소스 관리 레이어임. 
태스크매니저에 의해 관리되는 매니지먼트 컴포넌트로 구성됨. 
태스크 매니저는 공유되는 커뮤니케이션 채널을 제공하고
액티베이션될 관리 컴포넌트를 결정함. 결정은 상위 레이어 관리 전략에 의해 결정됨.

두번째 레이어는 매니저 어댑테이션 레이어임. 하위 레이어를 감독하고 재설정하는 
전략 매니저들로 구성됨. 문제 해결 프로세스를 관찰함.
런타임 모델은 성능과 관련된 정보를 제공하는데, 이 정보에 기반하여
전략 매니저가 동적으로 서비스 컴포지션 프로세스를 수정하도록 선택될 수 있음.
현재 전략 매니저는 매니지먼트 컴포넌트를 추가, 제거, 재설정할 수 있으며,
태스크 매니저의 서비스 컴포지션 파라메터도 재설정할 수 있음.

B. 리소스 매니저먼트 레이어
1) 오토노믹 매니지먼트 컴포넌트 : 오토노믹 매니져는 이벤트 기반 프로토콜을 통해 동작하는 
몇개의 매니지먼트 프로토콜로 만들어짐. 오토노믹 매니지먼트 컴포넌트를 다음과 같은 
인터페이스를 통해 정의했음.
- 골 관리 인터페이스 : 컴포넌트의 목표를 명세.
- 이벤트 관리 인터페이스 : 이벤트 수신과 전송에 관련됨. 퍼블리쉬-섭스크라이버 메소드
- 라이프 사이클 관리 인터페이스 ; 컴포넌트 상태 정보를 모으고 다루는 인터페이스
컴포넌트는 설치, 시작, 중지, 재시작될 수 있음.
- 인간-기계 인터랙션(HMI) 관리 인터페이스 : 사용자 친화적 정보를 제공하는 메소드를 정의
- 설정 관리 인터페이스 : 비기능적 특성을 선택, 설정할 수 있게 해줌.

컴포넌트는 여러개가 결함될 수 있음. 이 경우 같은 인터페이스를 노출할 수 있으며,
같은 방법으로 조작됨. 이러한 방법으코 큰 매니지먼트 컴포넌트로 확장 가능.
이를 위해 그룹핑이 가능.

오토노믹 관리 태스크는 여러 다른 스킬들을 요구하기 때문에 개발이 어려움
개발자는 하위 시스템의 전문가여야하며, 컴포넌트 기반 스킬을 가지고 있어야함.
이러한 이유로 컨테이너 기반 접근방법을 개발했음.
특정 도메인에 관련된 코드를 일반적인 컴포넌트 기반 소프트웨어 이슈로부터 분리하는 것임.
컨테이너는 도메인 독립적인 테크니컬 코드를 삽입하기 위해 들어오고 나가는 요청을 인터셉트함.

그림 2가 컨테이너를 나타냄. 컨테이너는 도메인 전문가에게는 블랙박스처럼 보임.
도메인 전문가의 관점에서 매니지먼트 컴포넌트는 오토노믹 태스크와 설정 파일로 정의됨.
설정 파일은 컴포넌트를 액티베이트하고 삽입하기 위한 모든 필요 정보를 제공.
컴포넌트가 관심있어하는 이벤트들과 컴포넌트가 실행되는 상태를 명세하고 있음.

싱크로나이져 서비스는 이벤트를 받을 때 호출됨. 동기화 이슈를 처리.
이벤트는 로컬에 저장됨. 이벤트를 받으면 싱크로나이져는 설정 파일에 정의된 
트리거링 함수를 호출함. 트리거링 술어가 만족되면 매니지먼트 컴포넌트가 준비 상태로 변경됨.

2) 태스크 매니져 : 컴포넌트간 효과적인 커뮤케이션을 보장하고 글로벌한 문제 해결 프로세스를 조정.
컴포넌트는 퍼블리쉬/섭스크라이버 이벤트 매니저를 통해 전송되는 이벤트로 통신함.
이벤트 매니저는 태스크 매니저의 일부분임. 이벤트 매니저는 이벤트들을 올바른 부분으로 분배해줌.
퍼블리쉬/섭스크라이버 모델을 사용함.
태스크 매니저는 매니지먼트 컴포넌트를 액티베이션시킴. 컨트롤러가 이를 담당함.(그림 3)
트리거링 컨디션이 만족되면 컨트롤러는 이를 알림. 
컨트롤러는 두가지 컴포넌트가 동시에 액티베이션 되는 충돌을 처리함.
토큰이나 temporal window를 사용.
C. 매니저 어댑션 : 전략 매니저
하이레벨 목표를 결정함수로 변환해줌. 이 결정함수는 태스크 매니저가 사용함.
결정 함수는 설정 테이블로 표현됨. 각 컨텍스트에 맞는 매니지먼트 컴포넌트를 매핑.

또한 태스크 매니저를 동적으로 관리하고 재설정해줌.

매니저먼트 컴포넌트의 프로파일, 액티베이트된 컴포넌트의 현재 상태, 발생한 문제의 히스토리와
액티베이트된 솔루션을 기록. 이것을 바탕으로 전략 매니저는 컴포넌트 통합 방법을 변경할 수 있음.
태스크 매니저의 결정 테이블을 수정하거나, 컴포넌트를 추가/삭제/재설정함.

D. 프레임웍 구현
구현을 위해 iPOJO라는 SOC 모델을 사용.

3. 실험
가정 보안 시스템. 변동이 심한 게이트웨이 리소스에서 테스트됨. 충돌 해결에 포커스를 둠.
충돌 해결은 아주 짧은 temporal window를 갖는 inhibition 매커니즘에 기반.
태스크 매니저는 3가지 테이블을 가지고 있음. 

by Pragmatic | 2011/02/14 18:23 | 트랙백 | 덧글(0)

A Service based Approach to Self-adaptive Software Systems based on Constructing a Group of Autonom

-------------------------------------------------------------------
서비스로부터 여러가지 디자인을 뽑아냄
각 디자인으로부터 여러가지 방법을 동원하여 구현
문제가 탐지되면 구현 방법을 바꿔가면서 수행함.
그래도 문제가 수정되지 않으면 그 문제를 상위레벨 AE로 보고함
대표적인 redundancy를 이용한 방법임.
-------------------------------------------------------------------


1. 서론
self adaptive, self healing을 위한 여러가지 연구가 있었음
- 아키텍쳐적 접근방법
- Reactive plans
- Machine learning
- alternative solutions : 여러가지 방법을 시도해봄, Redundant components or systems도 그중 하나임

소프트웨어 서비스 기반 alternative를 사용하는 방법을 제안할 것임.

2. 관련 연구
생략

3. 제안 방법
A. 서비스 추출 
필요한 서비스를 추출하고 정의함. 서비스의 기능이나 비기능적 디자인을 위해 필요한 정보가 제공되어야 함.
시스템 서비스에 초점을 맞추는것은 시스템을 쉽게 이해할 수 있게 해주고,
현재 소프트웨어 시스템의 엘리먼트를 좀더 재사용 가능하게 해줌.

B. 서비스를 위해 디자인
각 서비스에 대해 여러가지 다른 디자인들을 만듬. 여러가지 디자인 패턴과 시나리오를 활용.

C. 구현
각 디자인에 대해 하나 이상의 구현을 만듬. 다른 기술, 툴, 언어를 사용 ㅡㅡ;;
D. Autonomic Elements 적용(Deployment)
해당 사항을 적용. MAPE 구조
서비스, 디자인, 구현은 그림 2와 같은 구조를 가짐.
이것은 그림 3처럼 확장됨.
한 순간에는 하나의 구현만 동작함. 현재 동작중인 구현과 관련있는 AE가 상태를 모니터링함.
AE 목표는 시스템의 기능을 유지하는 것임.

문제가 탐지되고 그 문제가 해결할 방법이 없으면 디자인 레벨 AE에 의해 문제가 탐지됨.
AE는 다른 구현을 사용하거나 그 문제를 더 상위 레벨의 AE에게 알려줄 수 있음.

4. 기존 연구와 비교
redundant 기반 다른 연구에 비해 좀더 높은 유연성을 제공함.
대체 방법을 디자인하기 위한 디자이너의 노력이 많이 필요하지만
그것은 Cheng [6]과 Dashofy [7]의 연구보다 더 적거나 같음.

Lapouchnian의 연구는 우리와 비슷하지만 더 적은 컴퓨팅 리소스가 필요함.
AE의 숫자가 더 적기 때문. ㅡㅡ;;

뒷부분 생략...

by Pragmatic | 2011/02/11 12:12 | 트랙백 | 덧글(0)

An Optimization Approach to Restart Tree Based on Mean Failure Frequencies

1. 서론
Microreboot은 빠른 리커버리 전략중 하나임.
문제가 발생하면 문제가 발생한 컴포넌트를 리부트, 그래도 문제가 해결되지 않으면 상위 컴포넌트를 리부트
이를 문제가 수정될 때까지 반복적으로 수행

효율성을 위해 중요한 것은 어떻게 fault map과 restart tree를 만드느냐임.

이 논문은 restart tree를 최적화하여 리커버리 평균 시간을 줄이고 시스템 가용성을 높이기 위한 연구임

2. 관련 연구
2.1 restart tree와 restart group
restart tree는 미리 정의된 트리 구조로 리붓 가능한 컨트롤 노드의 계층구조임.
한 컴포넌트가 리부팅되면 하위 서브트리의 모든 컴포넌트가 리부팅됨.
트리는 회복 평균 시간을 최소화하기위해 통계학에 기반하여 계산되어야 함.

서브 트리는 restart group으로 불리고, 컨트롤 노드는 리커버리 에이전트라 불림.
restart 트리의 최적화는 컴포넌트간 failure correlation degrees를 결정하는 것임.
컴포넌트의 리커버리 독립성을 보장하기 위해 노드들은 반드시 리스타트 그룹으로 취급되야 함.

2.2 마이크로 리붓과 재귀적 리커버리
microreboot 논문 요약임. 생략....

3. 최적화 방법
실제 분산 어플에서는 컴포넌트가 독립적으로 짜여졌다 해도, 상호 참조나 기능적 종속성이 존재함.
이것은 회복시간을 증가시킴. 
AFPI 알고리즘에 기반한 falut map과 restart tree는 failure correlation만 반영하고,
컴포넌트간 failure correlation degree는 무시함.

3.1 최적화 원리
컴포넌트간 오류 빈도와 failure correlation degree를 판단할 수 있다면,
restart group이 적절히 나눠질 수 있고, 트리가 최적화될 수 있음.
mean failure frequency, correlation degree, 확률통계 이론에 기반하여,
리스타트  그룹을 판단할 수 있는 법칙은 다음과 같음
Rule 1 : 방향성이 있는 access path에서, 오류 빈도가 높을수록 
노드는 더 높은 오류 확률을 갖는다
Rule 2 : access path가 컴포넌트 노드를 건너가고, 노드가 높은 평균 오류 빈도를 가지고 있으면,
더 높은 오류 확률을 갖는다.
Rule 3 : 이웃한 컴포넌트 노드가 더 높은 평균 오류 빈도를 가지고, 그둘이 가까울수록
더 높은 failure correlation degree를 가지며, 리스타트 그룹에 포함된다.

정의 1 : Path Failure Frequency PF (Pj). 생략...

3.2 최적화 프로세스
3.2.1. 평균 오류 횟수 테스팅
 


by Pragmatic | 2011/02/10 16:54 | 트랙백 | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶